Je sais que je peux afficher la valeur dune variable en utilisant

(gdb) p var_name $1 = "varvalue" 

Est existe-t-il un moyen de définir la valeur dune variable lors du débogage avec gdb? Le document que jutilise ne semble pas avoir cette commande.

Modifier

Jai appris depuis que je peux changer létat dobjets en mémoire en appelant simplement leurs fonctions! Donc pour modifier un objet de type std::string, il suffit dappeler la fonction assign comme suit:

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

Merci.

Réponse

Google est votre ami:

Par exemple, si votre programme a une largeur variable, vous obtenez une erreur si vous essayez de définir une nouvelle valeur avec juste `set width = 13 « , car GDB a la largeur de jeu de commandes:

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

Lexpression invalide, bien sûr, est `= 47″. Pour définir réellement la largeur de la variable du programme, utilisez

 (gdb) set var width=47 

Vous pouvez trouver les informations nécessaires dans le document suivant :

Commentaires

Réponse

Un peu plus tard, mais pour définir une variable de chaîne, vous devriez essayez ceci>

gdb set var string_variable = « new_string_variable »

Les numéros de caractères doivent être les mêmes pour les deux définitions de variables, afin dappliquer le changement comme il convient. Les devis doivent être appliqués à la nouvelle variable.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *