GDB interaction with sigwait under Redhat 9.0

Daniel Jacobowitz drow@false.org
Wed May 12 13:55:00 GMT 2004


On Wed, May 12, 2004 at 04:33:48AM -0400, Paul Hilfinger wrote:
> 
> I recently submitted PR threads/1641 concerning a problem we seem to
> be having with Redhat 9.0 (Linux ... 2.4.21-9.ELsmp #1 SMP Thu Jan 8
> 17:08:56 EST 2004 i686 i686 i386 GNU/Linux).  It appears that on that
> system, there is a new, malign interaction of sigwait in the inferior
> with ptrace.  First, GDB (head version from about mid-April), no
> longer sees signals sent to an inferior that is waiting on sigwait.  Second,
> GDB's manipulation with the inferior causes sigwaits (at least on 
> pthreaded programs) to continue with a non-zero status code (EINTR to 
> be precise).  Does anyone know anything about this rather drastic change
> in sigwait's behavior?   I intend to submit a GNU/Linux bug report, unless 
> someone knows a good reason for this new (apparently undocumented) spec.

The EINTR bit is fairly typical; it is probably the C library's
obligation to hide it from you, or else the kernel's to not deliver it
in the first place, but that's a little tricky.  However, you never
said what version of the Linux kernel you were using - it does not look
like 2.6 can produce this result.  But then I don't see how an
unmodified 2.4 can either.

The inability to see signals received during sigwait is also a kernel
bug.  Looking at the code, it replicates a portion of the path from
do_signal without duplicating the ptrace-related bits.

-- 
Daniel Jacobowitz



More information about the Gdb mailing list