Unable to find dynamic linker breakpoint function.
Hareesh Nagarajan
hnagaraj@cs.uic.edu
Fri Feb 25 20:20:00 GMT 2005
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
More information about the Gdb
mailing list