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 debugger 🙄

    lg
    lordy


Anmelden zum Antworten