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]

GDB stops when I invoke an member function of an STL container


Hi,

I've written this simple piece of code that uses STL strings in C++. 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 (x86)
2.6.9-gentoo-r1
Gentoo 2004.3 (stage3 install; I installed it from a binary provided)
GDB was compiled from source.

How can I set gdb straight? Do I need to recompile something (GLIBC?!)?

Thanks,

Hareesh
PS: The code, compile flags and the GDB output follow.

<code>
#include <string>
#include <iostream>
using namespace std;

int main(void)
{
	string s("hello");
	char x;
	
	cout << s.at(3);
	x = s.at(3);
	return 0;
}

</code>

<compiled_with>

$g++ x.cc -g

</compiled_with>

<gdb>

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 <string>
2       #include <iostream>
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).


</gdb>


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