CDT "inhalt" eines strings im debugger ansehen
-
hi
arbeite mit c++ CDT fuer eclipse. das mit der zeit ziemlich aufreibend ist, ist dass ich es irgendwie nicht zusammenbringe den "inhalt" also das was in einem std::string drinnen steht mit dem debugger anzusehen. er zeigt mir leider nur irgendwelche speicheradressen anstatt dessen was mich eigentlich interessiert, gibts da eine möglichkeit?
thx lordy
-
was zeigt er denn an? kannst du die objekte aufklappen? ein std::string bzw. basic_string sollte doch irgendwo einen daten-member vom typ 'char*' haben, in dem sich die zeichen befinden, oder irre ich mich da?
ansonsten: debuggen mit GDB-basierten tools ist niemals gut, sondern 'unix-like'. falls du unter windoze programmierst, würde ich dir 'ms visual studio' wärmstens empfehlen. der in msvc integrierte debugger ist so ziemlich das beste, was es auf diesem sektor für x86-gurken gibt.
-
debugging-freak schrieb:
was zeigt er denn an? kannst du die objekte aufklappen? ein std::string bzw. basic_string sollte doch irgendwo einen daten-member vom typ 'char*' haben, in dem sich die zeichen befinden, oder irre ich mich da?
genau das hab ich mir auch gedacht ...
wenn ich mir variable ansehe (zb string sepp = "ABC";) , dann kann ich nur folgendes aufklappen:public
##npos
private
##_M_dataplus
####std::allocator<char>
######__gnu_cxx::new_allocator<char>
####public
######_M_p
########*_M_p: 'A'wobei die # die einrückung angeben
also in *_M_p scheints kann ich mir den ersten buchstaben ansehen ... was aber nicht sehr zielführend ist
-
sorry mein fehler, wenn ich bei _M_p nicht nur den wert ansehe, der 0x00...07075f8 beträgt sondern nochmals doppelklicke dann zeigt er
{static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7075f8 "ABC"}}
an und wenn ich dann ganz nach rechts scrolle dann finde ich dort mein ABC wieder
sehr benutzerfreundlich, da hat sich jemand richtig was gedacht bei dem debuggerlg
lordy