Vím, že hodnotu proměnné mohu načíst pomocí

(gdb) p var_name $1 = "varvalue" 

Je existuje způsob, jak nastavit hodnotu proměnné při ladění pomocí gdb? Dokument, který „nepoužívám“, zřejmě nemá tento příkaz.

Upravit

Od té doby jsem se dozvěděl, že mohu změnit stav objektů v paměti jednoduchým voláním jejich funkcí! Chcete-li tedy upravit objekt typu std::string, stačí zavolat funkci assign takto:

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

Děkuji.

Odpověď

Google is váš přítel:

Pokud má váš program například proměnnou šířku, zobrazí se chyba, pokud se pokusíte nastavit novou hodnotu pouze s `nastavenou šířkou = 13 „, protože GDB má šířku sady příkazů:

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

Neplatný výraz je samozřejmě `= 47″. Chcete-li skutečně nastavit proměnnou šířku programu, použijte

 (gdb) set var width=47 

Potřebné informace najdete v následujícím dokumentu :

Komentáře

Odpověď

O něco později, ale pro nastavení řetězcové proměnné byste měli zkuste to>

gdb set var string_variable = „new_string_variable“

Aby bylo možné změnu použít, musí být čísla znaků pro obě definice proměnných stejná. Na novou proměnnou je třeba použít uvozovky.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *