This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: GDB interaction with sigwait under Redhat 9.0
- From: Daniel Jacobowitz <drow at false dot org>
- To: Paul Hilfinger <hilfingr at gnat dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Wed, 12 May 2004 09:55:30 -0400
- Subject: Re: GDB interaction with sigwait under Redhat 9.0
- References: <20040512083348.55D63F2D8B@nile.gnat.com>
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