Ich weiß, dass ich den Wert einer Variablen mit

(gdb) p var_name $1 = "varvalue" 

Is ausgeben kann Gibt es eine Möglichkeit, den Wert einer Variablen beim Debuggen mit gdb festzulegen? Das Dokument, das ich verwende, scheint diesen Befehl nicht zu haben.

Bearbeiten

Ich habe seitdem erfahren, dass ich den Status ändern kann von Objekten im Speicher durch einfaches Aufrufen ihrer Funktionen! Um ein Objekt vom Typ std::string zu ändern, rufen Sie einfach die Funktion assign wie folgt auf:

(gdb) call str.assign("New Value") 

Vielen Dank.

Antwort

Google ist Ihr Freund:

Wenn Ihr Programm beispielsweise eine variable Breite hat, wird eine Fehlermeldung angezeigt, wenn Sie versuchen, einen neuen Wert mit nur `set width festzulegen = 13 „, da GDB die Befehlssatzbreite hat:

 (gdb) whatis width type = double (gdb) p width $4 = 13 (gdb) set width=47 Invalid syntax in expression. 

Der ungültige Ausdruck ist natürlich `= 47″. Um die variable Breite des Programms tatsächlich festzulegen, verwenden Sie

 (gdb) set var width=47 

Die erforderlichen Informationen finden Sie im folgenden Dokument :

Kommentare

Antwort

Etwas später, aber um eine Zeichenfolgenvariable festzulegen, sollten Sie Versuchen Sie dies>

gdb set var string_variable = „new_string_variable“

Die Zeichennummern müssen für die beiden Variablendefinitionen identisch sein, damit die Änderung entsprechend angewendet werden kann. Anführungszeichen müssen auf neue Variablen angewendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.