Sé que puedo generar el valor de una variable usando

(gdb) p var_name $1 = "varvalue" 

Is ¿Hay alguna manera de establecer el valor de una variable mientras se depura con gdb? El documento que estoy usando no parece tener este comando.

Editar

Desde entonces he aprendido que puedo cambiar el estado de objetos en la memoria simplemente llamando a sus funciones. Entonces, para modificar un objeto de tipo std::string, simplemente llame a la función assign de la siguiente manera:

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

Gracias.

Respuesta

Google es su amigo:

Por ejemplo, si su programa tiene un ancho variable, obtendrá un error si intenta establecer un nuevo valor con solo `set width = 13 «, porque GDB tiene el ancho de conjunto de comandos:

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

La expresión no válida, por supuesto, es `= 47″. Para establecer realmente el ancho de la variable del programa, use

 (gdb) set var width=47 

Puede encontrar la información necesaria en el siguiente documento :

Comentarios

Responder

Un poco más tarde, pero para establecer una variable de cadena debe pruebe esto>

gdb set var string_variable = «new_string_variable»

Los números de caracteres deben ser los mismos para las dos definiciones de variables, para poder aplicar el cambio según corresponda. Las cotizaciones deben aplicarse a la nueva variable.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *