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