[patch] Fix Linux attach to signalled/stopped processes
Jan Kratochvil
jan.kratochvil@redhat.com
Thu Apr 10 16:00:00 GMT 2008
On Thu, 10 Apr 2008 17:37:35 +0200, Daniel Jacobowitz wrote:
> I have another idea to solve the attach problem that does not involve
> redelivering signals - use WNOHANG in the initial wait if /proc
> already shows the process as stopped. There shouldn't be a race if
> this is done after we PTRACE_ATTACH.
You can try it yourself but all the signals take some time to get delivered and
WNOHANG usually misses some signals which should get caught.
> If I run attach-stopped from your testcase in a shell, then send it a
> stop signal using kill from another window, stock GDB fails to attach
> to it - just as I'd expect, that's the bug we're discussing. But if I
> run the attach-stopped.exp test script this part works fine. It turns
> out that if we spawn the program in expect (even at the expect1.1>
> prompt, by hand) instead of using a shell with job control, GDB can
> attach to it just fine.
As the shell already did WAITPID on the process and ate the SIGSTOP
notification so there is no other notification left there for GDB.
A process already stopped does not generate another SIGSTOP during
PTRACE_ATTACH as signals never count.
[ Sure from info from Roland before. ]
Regards,
Jan
More information about the Gdb-patches
mailing list