This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Problems outputting a string
- From: jacques <jacqueslenormand at sympatico dot ca>
- To: gdb at sources dot redhat dot com
- Date: Fri, 28 Feb 2003 13:03:20 -0500
- Subject: Problems outputting a string
- References: <F84byfA34cnFqUob5MF00027426@hotmail.com> <3E5E3F0D.1080308@redhat.com>
Hello
I'm having problems with my program. I've always been able to see
strings with gdb, but now I can't!
Here's my source:
#include <iostream>
#include <string>
using namespace std;
string foo(){
string ret;
ret = "lal";
return ret; //<ssbreak here
}
int main(){
cout << foo();
}
Here's the output:
lal
Here's gdb:
Breakpoint 1, firstAlpha() () at /home/palomer/tetete.cpp:7
7 return ret;
(gdb) p ret
$1 = {static npos = 4294967295,
_M_dataplus = {<allocator<char>> = {<No data fields>},
_M_p = 0xbffff7a0
"l\234\004\ba"+$ at ?÷y"??\205\004\bT_\022 at a"+$ at ?÷y"?d\n\023 at \001"}, static
_S_empty_rep_storage = {0, 0, 0, 0}}
(gdb) p ret.c_str()
Program received signal SIGSEGV, Segmentation fault.
0x400acf3c in std::char_traits<char>::assign(char&, char const&) ()
from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.1/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::c_str() const) will be abandoned.
(gdb)
Here are my compiler flags:
-ggdb -O0 -fno-inline
g++ version:
bash-2.05b$ g++ --version
g++ (GCC) 3.2.1 20021207 (Gentoo Linux 3.2.1-20021207)
gdb version:
bash-2.05b$ gdb --version
GNU gdb 5.3
any suggestions?
--Jacques