Re: [PATCH] Delete program spaces directly when removing inferiors

Pedro Alves
2015-07-08T18:17:32Z

On 07/08/2015 07:10 PM, Simon Marchi wrote:
> On 15-07-08 11:59 AM, Pedro Alves wrote:
>>
>> Yeah, it's only built if you build support for a target that pulls it in.
>> See configure.tgt, look for monitor.o. The buildbot uses --enable-targets=all,
>> you probably didn't.
>
> Oh right, I'll build with --enable-targets=all consistently from now on.
>
>> We can probably just make monitor.c call discard_all_inferiors.
>
> This doesn't have the same effect though. discard_all_inferiors
> does not delete the inferior, it just makes them exit. I am not
> sure what difference it will make.

Hmm, I think it'll fix a bug, actually. There should always
be an inferior. And that deletes it. So I assume
that after closing the monitor target, GDB crashes as soon as
it refers to the current inferior...

In the original multi-process support (~7.0), that was not the
case -- if you were not debugging a process, there's be
no inferior. Seems like this code has bit rotten.

I guess this suggests that no one's been using these monitor
targets for a long while?

>
> Is there any way to test that code path relatively easily on x86?
>

Don't think so. You could stick a:

delete_inferior_silent (ptid_get_pid (monitor_ptid));

call in remote.c:remote_close and see what happens there though.

Thanks,
Pedro Alves