Jag vet att jag kan mata ut värdet på en variabel med

(gdb) p var_name $1 = "varvalue" 

Is finns det ett sätt att ställa in värdet på en variabel vid felsökning med gdb? Dokumentet som jag använder verkar inte ha det här kommandot.

Redigera

Jag har sedan dess lärt mig att jag kan ändra tillstånd av objekt i minnet genom att helt enkelt anropa deras funktioner! För att ändra ett objekt av typen std::string, ring bara assign -funktionen enligt följande:

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

Tack.

Svar

Google är din vän:

Om ditt program till exempel har en variabel bredd får du ett fel om du försöker ställa in ett nytt värde med bara `ställ in bredd = 13 ”, eftersom GDB har kommandosättbredden:

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

Det ogiltiga uttrycket är naturligtvis `= 47″. För att faktiskt ställa in programmets variabla bredd, använd

 (gdb) set var width=47 

Du hittar informationen som behövs i följande dokument :

Kommentarer

Svar

Lite senare men för att ställa in en strängvariabel bör du prova detta>

gdb set var string_variable = ”new_string_variable”

Teckennummer måste vara desamma för de två variabeldefinitionerna för att tillämpa ändringen på lämpligt sätt. Citat måste tillämpas på den nya variabeln.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *