This is the mail archive of the gdb@sources.redhat.com 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: Unable to find dynamic linker breakpoint function.


Hareesh Nagarajan wrote:

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?



Actually, I was being dumb. I forgot that Linux has the runtime linker in ld-linux.so. On QNX, our linker is in our libc. I just wanted to be sure that what your program was loading at runtime was exactly the same as what gdb was reading - hence the 'info shared'.


I have no idea how to fix this problem and it is frankly driving me mad!


Looks like it has nothing to do with your special libs. I just tried to reproduce your problem and got this:


(gdb) p foo.at(2)
$1 = (const char &) @0x90f6016: 108 'l'
(gdb) p foo.at(2)

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00d27ef1 in std::string::at () from /usr/lib/libstdc++.so.5
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on"
Evaluation of the expression containing the function (std::string::at(unsigned i
nt) const) will be abandoned.
(gdb)


It worked the first time and then failed the second time. Looks like the dummy frame and supporting breakpoints are left over:

(gdb) maint info breakpoints
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x08048905 in main at seeplus.cc:8
       breakpoint already hit 1 time
-2  shlib events   keep y   0x006f44a0 <_dl_debug_state>
       breakpoint already hit 3 times
-10 longjmp        keep n   0x006f7920 <longjmp>
-11 longjmp        keep n   0x00727c60 <siglongjmp>
-12 longjmp        keep n   0x00727c60 <siglongjmp>
-13 longjmp resume keep n   0x00000000
0   call dummy     del  y   0x08048844 <_start>
       stop only in stack frame at 0xbfe8300c

Ick. If I put 'set unwindsignal on', at least the program isn't hosed when it chokes. Looks like the same problem as PR:1766:

http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gdb&pr=1766&return_url=http%3A%2F%2Fsources.redhat.com%2Fcgi-bin%2Fgnatsweb.pl%3Fdatabase%3Dgdb%26category%3Dc%252B%252B%26severity%3Dall%26priority%3Dall%26responsible%3Dall%26submitter_id%3Dall%26state%3Dall%26ignoreclosed%3DIgnore%2520Closed%26class%3Dall%26synopsis%3D%26multitext%3D%26columns%3Dcategory%26columns%3Dstate%26columns%3Dclass%26columns%3Dresponsible%26columns%3Dsynopsis%26displaydate%3DDisplay%2520Current%2520Date%26cmd%3Dsubmit%2520query%26sortby%3DResponsible%26.cgifields%3Ddisplaydate%26.cgifields%3Dignoreclosed%26.cgifields%3Doriginatedbyme%26.cgifields%3Dcolumns

Don't know what else to tell you. Known problem. Don't do that. We'll fix it RSN. Sorry.

cheers,

Kris


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