This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
RE: debugging threads
- From: "Tim Michals" <tcmichals at verizon dot net>
- To: <gdb at sourceware dot org>
- Date: Mon, 01 Oct 2007 21:00:11 -0500
- Subject: RE: debugging threads
- References: <000601c8030d$fb92a8d0$f2b7fa70$@net>
I've narrowed the issue down it to using -static gcc option version shared
libraries
For example:
Ok, this might be a user error, but... I did exactly what you did and yes it
worked. I'm using the latest and greatest from boost cvs. So mine is in
/usr/local/lib... So using that library and changing the path ...
[tcmichals@localhost examples]$ g++ -o helloworld helloworld.cpp -Wall
-ggdb2 -
pthread -L/usr/local/lib -lboost_thread-gcc41-mt-d
[tcmichals@localhost examples]$ export LD_LIBRARY_PATH=/usr/local/lib
[tcmichals@localhost examples]$ gdb helloworld
GNU gdb Red Hat Linux (6.6-15.fc7rh)
Copyright (C) 2006 Free Software Foundation, Inc.
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) b main
Breakpoint 1 at 0x8048a78: file helloworld.cpp, line 17.
(gdb) start
Breakpoint 2 at 0x8048a78: file helloworld.cpp, line 17.
Starting program: /home/tcmichals/examples/helloworld
[Thread debugging using libthread_db enabled]
[New Thread -1209014576 (LWP 2826)]
[Switching to Thread -1209014576 (LWP 2826)]
Breakpoint 1, main () at helloworld.cpp:17
17 boost::thread thrd(&helloworld);
(gdb)
It worked!!!
ok if I do the following:
The program is running. Exit anyway? (y or n) y
[tcmichals@localhost examples]$ g++ -static -o helloworld helloworld.cpp
-Wall
-ggdb2 -pthread -L/usr/local/lib -lboost_thread-gcc41-mt-d
[tcmichals@localhost examples]$
[tcmichals@localhost examples]$ ls /usr/local/lib/libboost_thread*
/usr/local/lib/libboost_thread-gcc41-mt-1_35.a
/usr/local/lib/libboost_thread-gcc41-mt-1_35.so
/usr/local/lib/libboost_thread-gcc41-mt-1_35.so.1.35.0
/usr/local/lib/libboost_thread-gcc41-mt.a
/usr/local/lib/libboost_thread-gcc41-mt-d-1_35.a
/usr/local/lib/libboost_thread-gcc41-mt-d-1_35.so
/usr/local/lib/libboost_thread-gcc41-mt-d-1_35.so.1.35.0
/usr/local/lib/libboost_thread-gcc41-mt-d.a
/usr/local/lib/libboost_thread-gcc41-mt-d.so
/usr/local/lib/libboost_thread-gcc41-mt.so
[tcmichals@localhost examples]$ gdb helloworld
GNU gdb Red Hat Linux (6.6-15.fc7rh)
Copyright (C) 2006 Free Software Foundation, Inc.
This GDB was configured as "i386-redhat-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) b main
Breakpoint 1 at 0x80482ac: file helloworld.cpp, line 17.
(gdb) start
Breakpoint 2 at 0x80482ac: file helloworld.cpp, line 17.
Starting program: /home/tcmichals/examples/helloworld
[Thread debugging using libthread_db enabled]
Cannot find new threads: generic error
(gdb)
Then I try to exit gdb and it locks up... But I thought -static links the
static library?
well, now atleast I know what the difference is and the issue, but don't
know why.