This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: Unable to find dynamic linker breakpoint function.
- From: Hareesh Nagarajan <hnagaraj at cs dot uic dot edu>
- To: GDB <gdb at sources dot redhat dot com>
- Cc: Kris Warkentin <kewarken at qnx dot com>
- Date: Fri, 25 Feb 2005 13:36:57 -0600
- Subject: Re: Unable to find dynamic linker breakpoint function.
- References: <421EB94D.3060200@cs.uic.edu> <421F2714.40103@qnx.com>
Kris Warkentin wrote:
I think you're seeing two different problems here but they may have the
same root. Gdb may be finding the wrong glibc - that is, not the same
one that the program is using. Try 'info shared' to see what gdb is using.
I don't know how 'info shared' helps, but this might:
hareesh: hareesh/ $ ldd new
linux-gate.so.1 => (0xffffe000)
libstdc++.so.5 =>
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libstdc++.so.5 (0xb7f0d000)
libm.so.6 => /lib/libm.so.6 (0xb7eeb000)
libgcc_s.so.1 =>
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/libgcc_s.so.1 (0xb7ee2000)
libc.so.6 => /lib/libc.so.6 (0xb7dce000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
I have compiled libstdc++ with '-g -fomit-frame-pointer'.
Additionally, I use Gentoo Linux and that this problem of mine affects
debugging member functions of C++ STL containers. So how could the wrong
glibc be the problem?
As far as the stop goes, string::at(2) may have been inlined in which
case the breakpoint may well be in that code. You might want to look at
the assembly. Try breaking on seven, nexting to 8 and see if you get
the same result. Or clear the breakpoint before calling x.at(2).
I did that. But that doesn't change anything as can be seen below.
Breakpoint 1, main () at new.cc:7
7 string x("heloo");
(gdb) n
8 cout << x.at(2);
(gdb) inspect x.at(2)
Breakpoint 1, main () at new.cc:7
7 string x("heloo");
The program being debugged stopped while in a function called from GDB.
When the function (std::string::at(unsigned) const) is done executing,
GDB will silently stop (instead of continuing to evaluate the expression
containing the function call).
I have no idea how to fix this problem and it is frankly driving me mad!
Thanks,
Hareesh