Jeg vet at jeg kan levere verdien til en variabel ved hjelp av

(gdb) p var_name $1 = "varvalue" 

Is finnes det en måte å sette verdien på en variabel under feilsøking med gdb? Dokumentet jeg bruker ikke ser ut til å ha denne kommandoen.

Rediger

Jeg har siden lært at jeg kan endre tilstanden av objekter i minnet ved å bare ringe funksjonene deres! For å endre et objekt av typen std::string, er det bare å ringe assign -funksjonen som følger:

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

Takk.

Svar

Google er vennen din:

Hvis for eksempel programmet ditt har en variabel bredde, får du en feil hvis du prøver å sette en ny verdi med bare `sett bredde = 13 «, fordi GDB har kommandosettbredden:

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

Det ugyldige uttrykket er selvfølgelig `= 47″. For å faktisk stille inn programmets variable bredde, bruk

 (gdb) set var width=47 

Du finner informasjonen du trenger i følgende dokument :

Kommentarer

Svar

Litt senere, men for å angi en strengvariabel bør du prøv dette>

gdb set var string_variable = «new_string_variable»

Tegn tall må være de samme for de to variabeldefinisjonene, for å kunne bruke endringen etter behov. Tilbud må brukes på den nye variabelen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *