Re: catch signal does not appear multi-inferior safe

Pedro Alves <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 07/11/2014 11:56 AM, Chris January wrote:
> Hello,
> 
> It appears to me that the 'catch signal' support in GDB is not
> multi-inferior safe. Combining the 'catch signal' command with the
> 'checkpoint' command, for example, results in an internal error:
> 
> break-catch-sig.c:152: internal-error:
> signal_catchpoint_remove_location: Assertion `signal_catch_counts[iter]
>> 0' failed.
> A problem internal to GDB has been detected,
> further debugging may prove unreliable.
> Quit this debugging session? (y or n)
> 
> see the end of this e-mail for reproducer.
> 
> When checkpointing / catching a fork signal_catchpoint_remove_location
> may be called twice in a row - once for the parent and once for the
> child. 

Signal catchpoint locations aren't really per-process; they're
global.  GDB shouldn't be trying to detach them from the child.
Where is this happening?  Is this from detach_breakpoint ?  That's
odd, since that skips bp_loc_other locations?

> This causes signal_catch_counts to go below 0. I would like some
> advice on how to fix this problem as I am not sure what the correct fix
> is.


-- 
Thanks,
Pedro Alves
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.