So di poter generare il valore di una variabile utilizzando

(gdb) p var_name $1 = "varvalue" 

È cè un modo per impostare il valore di una variabile durante il debug con gdb? Il documento che sto usando non sembra avere questo comando.

Modifica

Da allora ho imparato che posso cambiare lo stato di oggetti in memoria semplicemente chiamando le loro funzioni! Quindi, per modificare un oggetto di tipo std::string, chiama la funzione assign come segue:

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

Grazie.

Risposta

Google è il tuo amico:

Ad esempio, se il tuo programma ha una larghezza variabile, ottieni un errore se provi a impostare un nuovo valore con solo `set width = 13 “, perché GDB ha la larghezza del set di comandi:

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

Lespressione non valida, ovviamente, è “= 47”. Per impostare effettivamente la larghezza della variabile del programma, usa

 (gdb) set var width=47 

Puoi trovare le informazioni necessarie nel seguente documento :

Commenti

Risposta

Un po più tardi, ma per impostare una variabile stringa dovresti prova questo>

gdb set var string_variable = “new_string_variable”

I numeri dei caratteri devono essere gli stessi per le due definizioni delle variabili, al fine di applicare la modifica in modo appropriato. Le virgolette devono essere applicate alla nuova variabile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *