Jeg ved, at jeg kan afgive værdien af en variabel ved hjælp af
(gdb) p var_name $1 = "varvalue"
Is der er en måde at indstille værdien af en variabel under fejlretning med gdb? Dokumentet, som jeg bruger, synes ikke at have denne kommando.
Rediger
Jeg har siden lært, at jeg kan ændre tilstand af objekter i hukommelsen ved blot at kalde deres funktioner! Så for at ændre et objekt af typen std::string
, skal du bare kalde assign
-funktionen som følger:
(gdb) call str.assign("New Value")
Tak.
Svar
Google er din ven:
Hvis dit program f.eks. har en variabel bredde, får du en fejl, hvis du prøver at indstille en ny værdi med bare `indstil bredde = 13 “, fordi GDB har kommandosætbredden:
(gdb) whatis width type = double (gdb) p width $4 = 13 (gdb) set width=47 Invalid syntax in expression.
Det ugyldige udtryk er selvfølgelig `= 47″. For faktisk at indstille programmets variable bredde skal du bruge
(gdb) set var width=47
Du kan finde de nødvendige oplysninger i følgende dokument :
Kommentarer
- Tak for dette svar! Jeg prøvede bare dette med en dobbelt variabel, og det fungerede, men det fungerede dog ikke ' med std :: strengobjekter. Er en lignende teknik til at ændre std :: strengobjekter også?
- tjek dem ud: sepwww.stanford.edu/public/sep/claudio/Research / Prst_ExpRefl / …
- og denne: rsquared.sdf.org/gdb/ iacv.html
Svar
Lidt senere, men for at indstille en strengvariabel skal du prøv dette>
gdb set var string_variable = “new_string_variable”
Tegnnumre skal være de samme for de to variabeldefinitioner for at anvende ændringen efter behov. Citater skal anvendes på den nye variabel.