Linux ptrace handling of SIGSTOP

Kris Warkentin kewarken@qnx.com
Wed Jun 8 18:33:00 GMT 2005


The Linux documentation for ptrace(PTRACE_CONT, ...., signal) claims 
that signal will be passed unless it is a SIGSTOP.  I hit a process that 
I was debugging with a SIGSTOP, gdb of course stops claiming that the 
process got a SIGSTOP.  I continue and gdb again says that the process 
was hit with a SIGSTOP.  If I continue a second time, the process 
actually continues.

I was debugging child_resume and observed that both times the ptrace was 
being called with SIGSTOP but the second time the process actually 
resumes.  This implies to me that the ptrace documentation is not 
completely correct because it seems that the first SIGSTOP is being 
delivered.

Am I missing something?  The reason that I ask is that we're not 
currently handling SIGSTOP properly in QNX so I'm trying to find out 
what the expected behaviour should be.  Based on the docs, I would have 
thought that the continue would just cause it to resume without further 
interruption.

cheers,

Kris

-- 
Stay up-to-date on all the QNX news!  Register at
http://www.qnx.com/news/forms/newsletter.html to
receive our newsletter.



More information about the Gdb mailing list