Știu că pot reda valoarea unei variabile folosind

(gdb) p var_name $1 = "varvalue" 

Este există o modalitate de a seta valoarea unei variabile în timp ce depanați cu gdb? Documentul pe care îl folosesc nu pare să aibă această comandă.

Editați

De atunci am aflat că pot schimba starea de obiecte din memorie prin simpla apelare a funcțiilor lor! Deci, pentru a modifica un obiect de tip std::string, trebuie doar să apelați funcția assign după cum urmează:

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

Vă mulțumim.

Răspundeți

Google este prietenul tău:

De exemplu, dacă programul tău are o lățime variabilă, primești o eroare dacă încerci să setezi o nouă valoare doar cu `set width = 13 „, deoarece GDB are lățimea setată de comandă:

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

Expresia nevalidă, desigur, este `= 47″. Pentru a seta efectiv lățimea variabilă a programului, utilizați

 (gdb) set var width=47 

Puteți găsi informațiile necesare în următorul document :

Comentarii

Răspuns

Puțin mai târziu, dar pentru a seta o variabilă șir ar trebui să încercați acest lucru>

gdb set var string_variable = „new_string_variable”

Numerele de caractere trebuie să fie aceleași pentru cele două definiții ale variabilelor, pentru a aplica modificarea după caz. Cotațiile trebuie aplicate noii variabile.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *