This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH RFA] lin-lwp.c: Block SIGCHLD events when attaching
- From: "H . J . Lu" <hjl at lucon dot org>
- To: Kevin Buettner <kevinb at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Mon, 19 Nov 2001 11:38:32 -0800
- Subject: Re: [PATCH RFA] lin-lwp.c: Block SIGCHLD events when attaching
- References: <1011119193045.ZM16376@ocotillo.lan>
On Mon, Nov 19, 2001 at 12:30:45PM -0700, Kevin Buettner wrote:
> When doing a lin_lwp_attach_lwp(), it is sometimes possible to receive
> a SIGCHLD signal thus causing the waitpid() call to fail with EINTR.
> This in turn causes the second assert() in lin_lwp_attach_lwp() to
> fail.
>
> Reproducing this problem can be somewhat difficult. I've only been
> able to reproduce it on a dual processor Linux/x86 machine. I did
> manage to reproduce it using the linux-dp program as follows:
>
Have you looked at
http://sources.redhat.com/ml/gdb/2001-09/msg00139.html
Specifically,
# gcc -g ex11.c -lpthread -lrt -D_GNU_SOURCE -static
# a.out
# gdb a.out
...
(gdb) att 14226
Attaching to program: /home/hjl/bugs/gdb/thread/a.out, process 14226
...
lin-lwp.c:620: gdb-internal-error: stop_wait_callback: Assertion `pid == GET_LWP (lp->ptid)' failed.
An internal GDB error was detected. This may make further
ex11.c is from glibc and 14226 is the first thread. Your patch may fix
it also.
H.J.