2010-03-23 21 views
13

Ist es möglich ... wenn der Debugger an einem Haltepunkt angehalten wird, den Wert einer std :: string-Variablen zu ändern, ohne auf Hacks zurückzugreifen, wie das Speicherabbild des aktuellen Puffers zu optimieren?Einen std :: string Variablenwert aus gdb setzen?

z.B. so etwas wie „var mystring = set“ Hallo Welt“

Antwort

20

Versuchen Sie, diese (getestet und funktioniert für mich):

call mystring.assign("hello world") 

Der Schlüssel ist, dass anstelle des Speichers zu modifizieren direkt, Sie den Anruf Die Funktionen des Objekts, um seinen Zustand zu ändern. std::basic_string hat eine Member-Funktion namens assign, die den Job erledigt.

+1

Excellent! Das ist nicht nur genau das, was ich brauche, klärt mein Denken darüber, wie gdb funktioniert. – Stabledog

Verwandte Themen