This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Can't attach to child using gdb-5.1.1 on Linux
- From: Jesse Marlin <jlm at compgen dot com>
- To: Andrew Cagney <ac131313 at cygnus dot com>
- Cc: jlm at compgen dot com, gdb at sources dot redhat dot com
- Date: Thu, 4 Apr 2002 11:18:11 -0500
- Subject: Re: Can't attach to child using gdb-5.1.1 on Linux
- References: <15515.20096.343244.71499@bass.compgen.com><3CAC629D.9000304@cygnus.com>
- Reply-to: jlm at compgen dot com
Andrew Cagney writes:
> > I have a process that forks a child. If I try to attach to the
> > child it reads the symbols and shows an accurate stack trace, but when
> > I set a breakpoint and try to continue I get the following:
> >
> > (gdb) c
> > Continuing.
> > lin-lwp.c:1003: gdb-internal-error: lin_lwp_wait: Assertion `WIFSTOPPED (status) && WSTOPSIG (status) == SIGSTOP' failed.
> > An internal GDB error was detected. This may make further
> > debugging unreliable. Continue this debugging session? (y or n) n
> >
> > Create a core file containing the current state of GDB? (y or n) n
> >
> > Inferior GDB exited abnormally with code 1
> >
> >
> > I answered yes to the above also, but it did not improve the situation. Has
> > anybody seen this behvior before. I am using gcc-2.95.3 for compilation.
>
> (not sure if someone has responded to this)
>
> The first thing to do is get a more recent GDB from:
>
> http://sources.redhat.com/gdb/current/
>
> many problems have been fixed and if this problem still occures things
> have been narrowed down a bit.
>
> Andrew
>
Okay I downloaded the 20020404 daily snapshot, compiled, installed, and
used it. Here is what I am getting now. The child is sleeping for 2
minutes. Here is what I see when I initially attach to the child.
(gdb) where
#0 0x40a35621 in nanosleep () from /lib/libc.so.6
#1 0x40a355b8 in sleep () from /lib/libc.so.6
#2 0x0804d3fa in start_archive_client (dev_ptr=0x809e580)
at dcs_archive_mgr.c:2258
#3 0x0804ab8c in ping_child (timer_id=0x809e410, context=0x0, now=1017936110)
at dcs_archive_mgr.c:798
#4 0x4051de96 in evn_dispatch_event (event=0xbfffcd24,
current_time=0x40524af0) at event_manager.c:803
#5 0x4051dfef in evn_process_event (wait=1) at event_manager.c:879
#6 0x4051e04b in evn_process_all_events () at event_manager.c:932
#7 0x0804ae3c in proc () at dcs_archive_mgr.c:892
#8 0x0804a510 in main (argc=7, argv=0xbfffce64) at dcs_archive_mgr.c:606
#9 0x409a8c5f in __libc_start_main () from /lib/libc.so.6
(gdb) br child_init
Breakpoint 1 at 0x804de64: file dcs_archive_mgr.c, line 2810.
(gdb) break dcs_archive_mgr.c:2262
Breakpoint 2 at 0x804d3fd: file dcs_archive_mgr.c, line 2262.
After setting a few breakpoints I continue and see this:
(gdb) c
Continuing.
lin-lwp.c:1105: gdb-internal-error: lin_lwp_wait: Assertion `WIFSTOPPED (status) && WSTOPSIG (status) == SIGSTOP' failed.
An internal GDB error was detected. This may make further
debugging unreliable. Quit this debugging session? (y or n) n
Create a core file containing the current state of GDB? (y or n) y
(gdb) where
#0 0x40a35621 in nanosleep () from /lib/libc.so.6
#1 0x40a355b8 in sleep () from /lib/libc.so.6
#2 0x0804d3fa in start_archive_client (dev_ptr=0x809e580)
at dcs_archive_mgr.c:2258
#3 0x0804ab8c in ping_child (timer_id=0x809e410, context=0x0, now=1017936110)
at dcs_archive_mgr.c:798
#4 0x4051de96 in evn_dispatch_event (event=0xbfffcd24,
current_time=0x40524af0) at event_manager.c:803
#5 0x4051dfef in evn_process_event (wait=1) at event_manager.c:879
#6 0x4051e04b in evn_process_all_events () at event_manager.c:932
#7 0x0804ae3c in proc () at dcs_archive_mgr.c:892
#8 0x0804a510 in main (argc=7, argv=0xbfffce64) at dcs_archive_mgr.c:606
#9 0x409a8c5f in __libc_start_main () from /lib/libc.so.6
The stack traces look good before and after, but I can't debug anything.
I did create a core file of gdb this time, and will submit if you want me
to.