This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ttrace: Protocal error


> Hmmm, the thread seems to have exited but state_ is still 1.

The patch below seems to fix the problem.  I was finally able
to catch an abort in vla6.f90.

Ok?

(gdb) r
Starting program: /mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libgomp/testsuite/vla6.x3g
warning: Private mapping of shared library text was not specified
by the executable; setting a breakpoint in a shared library which
is not privately mapped will not work.  See the HP-UX 11i v3 chatr
manpage for methods to privately map shared library text.
[New process 6450, lwp 7134092]
[process 6450, lwp 7134092 exited]
[New process 6450, lwp 7134093]
[process 6450, lwp 7134093 exited]
[New process 6450, lwp 7134094]
[process 6450, lwp 7134094 exited]
[New process 6450, lwp 7134095]
[process 6450, lwp 7134095 exited]
[New process 6450, lwp 7134096]
[New process 6450, lwp 7134097]
[New process 6450, lwp 7134098]
[New process 6450, lwp 7134099]
[New process 6450, lwp 7134100]

Program received signal SIGABRT, Aborted.
0xc020da50 in kill () from /usr/lib/libc.2
(gdb) bt
#0  0xc020da50 in kill () from /usr/lib/libc.2
#1  0xc01a7f74 in raise () from /usr/lib/libc.2
#2  0xc01e92c8 in abort_C () from /usr/lib/libc.2
#3  0xc01e9324 in abort () from /usr/lib/libc.2
#4  0xc1c7ea20 in _gfortran_abort ()
    at ../../../gcc/libgfortran/intrinsics/abort.c:39
#5  0x00007d04 in foo.572 (c=<error reading variable>,
    d=<error reading variable>, e=<error reading variable>,
    f=<error reading variable>, g=<error reading variable>,
    h=<error reading variable>, i=<error reading variable>,
    j=<error reading variable>, k=<error reading variable>,
    n=<error reading variable>, _c=<error reading variable>,
    _d=<error reading variable>, _g=<error reading variable>,
    _h=<error reading variable>)
    at /mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla6.f90:175
#6  0x00007e58 in test.560 ()
    at /mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla6.f90:189
#7  0x00007ea8 in MAIN__ ()
    at /mnt/gnu/gcc/gcc/libgomp/testsuite/libgomp.fortran/vla6.f90:3
#8  0x00007f30 in main (argc=1, argv=0x7eff050c)
    at ../../../gcc/libgfortran/fmain.c:21
(gdb) info shared
>From        To          Syms Read   Shared Object Library
0xc0010000  0xc0044084  Yes         /usr/lib/dld.sl
0xc0e1c000  0xc0e28000  Yes         /mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/./libgomp/.libs/libgomp.sl.1
0xc1bc0000  0xc1c9c000  Yes         /mnt/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/./libgomp/../libgfortran/.libs/libgfortran.sl.3
0xc0e00000  0xc0e19000  Yes         /mnt/gnu/gcc/objdir/./gcc/libgcc_s.sl
0xc00c0000  0xc00ec000  Yes         /usr/lib/libm.2
0xc03bc000  0xc03c0000  Yes         /usr/lib/librt.2
0xc0050000  0xc0069000  Yes         /opt/langtools/lib/libpthread.1
0xc0100000  0xc024b000  Yes         /usr/lib/libc.2
0xc0005000  0xc0008000  Yes         /usr/lib/libdld.2
0xc0004000  0xc0005000  Yes         /opt/graphics/OpenGL/lib/libogltls.sl

This is with Pedro's change.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

2008-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	* inf-ttrace.c (inf_ttrace_resume_callback): Don't resume dying thread.

Index: inf-ttrace.c
===================================================================
RCS file: /cvs/src/src/gdb/inf-ttrace.c,v
retrieving revision 1.30
diff -u -3 -p -r1.30 inf-ttrace.c
--- inf-ttrace.c	9 Jul 2008 22:23:05 -0000	1.30
+++ inf-ttrace.c	8 Aug 2008 19:57:13 -0000
@@ -787,7 +804,9 @@ inf_ttrace_kill (void)
 static int
 inf_ttrace_resume_callback (struct thread_info *info, void *arg)
 {
-  if (!ptid_equal (info->ptid, inferior_ptid))
+  if (!ptid_equal (info->ptid, inferior_ptid)
+      && !((struct inf_ttrace_private_thread_info *)info->private)->dying
+      && !is_exited (info->ptid))
     {
       pid_t pid = ptid_get_pid (info->ptid);
       lwpid_t lwpid = ptid_get_lwp (info->ptid);
 
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]