This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: SIGCHLD ignored
Daniel Jacobowitz wrote:
> On Wed, Jun 11, 2008 at 09:21:05PM +0400, Vladimir Prus wrote:
>>
>> A fellow KDevelop hacker has reported that when running kdevelop itself
>> under CVS HEAD of gdb, kdevelop hangs. What happens if that kdevelop spawns
>> subprocess, and then does not notice it has exited, because it never
>> receives SIGCHLD. I attach a much reduced project that requires only Qt4,
>> and probably an even more reduced project is possible.
>>
>> If I apply the attached patch to GDB, things work fine -- but I suspect
>> this 'fix' will break something else.
>>
>> Pedro, I think this SIGCHLD magic is your doing -- do you have any ideas
>> how to fix it?
>
> linux_nat_create_inferior is already unblocking signals before
> creating. Does normal_mask contain SIGCHLD?
It does not, at least when the normal_mask is initially obtained.
linux_nat_create_inferior does restore the mask. Still, my test
case does not work.
> The approach taken (search for "signal" in fork-child.c, first
> comment) may not be compatible with async...
I actually would appreciate some comments about what we do with SIGCHLD
in linux-nat.c -- the code is fairly complex to understand this by
reading.
- Volodya