From mboxrd@z Thu Jan 1 00:00:00 1970 From: Erik Boettcher Subject: Re: Mysterious GDB Error! Date: Tue, 15 Mar 2005 21:31:09 -0500 Message-ID: <125ed8800503151831137ac182@mail.gmail.com> References: <7728232c05021023285bbb6c92@mail.gmail.com> Reply-To: Erik Boettcher Mime-Version: 1.0 Content-Transfer-Encoding: 7bit In-Reply-To: <7728232c05021023285bbb6c92@mail.gmail.com> Sender: linux-c-programming-owner@vger.kernel.org List-Id: Content-Type: text/plain; charset="us-ascii" To: Hareesh Nagarajan , linux-c-programming@vger.kernel.org This is a problem caused by Gentoo stripping symbols from programs when they are compiled. You need to re-emerge glibc with stripping disabled like so: FEATURES=nostrip emerge glibc On Fri, 11 Feb 2005 01:28:34 -0600, Hareesh Nagarajan wrote: > Hi, > > I've written this simple piece of code that uses STL strings in C++ > (appears below). Now when I run GDB I get the following: > > 1. warning: Unable to find dynamic linker breakpoint function. > GDB will be unable to debug shared library initializers > and track explicitly loaded dynamic code. > > 2. 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). > > Why on earth am I getting the second message? I am not able call the > member functions of any container. > > My specs: > Athlon Processor > 2.6.9-gentoo-r1 > Gentoo 2004.3 (stage3 install) > GDB was emerged from source. > > How can I set gdb straight? Do I need to re-emerge something. > > Thanks, > > Hareesh > PS: The code and the GDB output follow. > > > #include > #include > using namespace std; > > int main(void) > { > string s("hello"); > char x; > > cout << s.at(3); > x = s.at(3); > return 0; > } > > > > > hareesh: 1/ $ gdb ./a.out > GNU gdb 6.0 > Copyright 2003 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i686-pc-linux-gnu"...Using host > libthread_db library > "/lib/libthread_db.so.1". > > (gdb) l > 1 #include > 2 #include > 3 using namespace std; > 4 > 5 int main(void) > 6 { > 7 string s("hello"); > 8 char x; > 9 > 10 cout << s.at(3); > (gdb) b 9 > Breakpoint 1 at 0x80488a6: file x.cc, line 9. > (gdb) r > Starting program: /home/hareesh/courses/485/1/a.out > warning: Unable to find dynamic linker breakpoint function. > GDB will be unable to debug shared library initializers > and track explicitly loaded dynamic code. > > Breakpoint 1, main () at x.cc:10 > 10 cout << s.at(3); > (gdb) inspect s.at(3) > > Breakpoint 1, main () at x.cc:10 > 10 cout << s.at(3); > 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). > > > - > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >