Eu sei que posso produzir o valor de uma variável usando

(gdb) p var_name $1 = "varvalue" 

É existe uma maneira de definir o valor de uma variável durante a depuração com gdb? O documento que estou usando não parece ter esse comando.

Edite

Desde então aprendi que posso mudar o estado de objetos na memória simplesmente chamando suas funções! Portanto, para modificar um objeto do tipo std::string, basta chamar a função assign da seguinte maneira:

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

Obrigado.

Resposta

O Google é seu amigo:

Por exemplo, se o seu programa tiver uma largura variável, você receberá um erro se tentar definir um novo valor com apenas `definir a largura = 13 “, porque o GDB tem a largura do conjunto de comandos:

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

A expressão inválida, é claro, é `= 47″. Para definir realmente a largura da variável do programa, use

 (gdb) set var width=47 

Você pode encontrar as informações necessárias no seguinte documento :

Comentários

Resposta

Um pouco mais tarde, mas para definir uma variável de string, você deve tente isto>

gdb set var string_variable = “new_string_variable”

Os números dos caracteres devem ser iguais para as duas definições de variáveis, a fim de aplicar a mudança conforme apropriado. As aspas precisam ser aplicadas à nova variável.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *