7
votes

Tester si une variable de commodité GDB est définie

est là un moyen de tester si une variable de commodité a été définie dans gdb?

par exemple: xxx

$ _Exitcode est void car il n'est pas défini tant que le programme se termine. La construction disponible la plus proche est init-if-non défini , mais cela nécessiterait de définir la variable à une valeur de sentinelle et de tester contre cela.

gdb

0 commentaires

3 Réponses :


2
votes

IM ayant le même problème. Vous ne pouvez pas vérifier si une variable a été définie ou non aussi loin que je sache dans gdb .. Vous pouvez l'exécuter à travers Python, probablement et que tout le script est exécuté de cette façon, Mais je ne suis pas sûr que les scripts Python dans GDB sont persistants ou courir tout le temps. Vous pouvez faire quelque chose comme ..

init-if-undefined $_exitcode = 1
if $_exitcode == 0
quit
end
end


0 commentaires

5
votes

Puisque le code de sortie normal de processus est quelque part entre 0 et 255, je suggère de suivre:

init-if-undefined $_exitcode = -1
if ($_exitcode != -1)
  quit
end


0 commentaires

0
votes

Vous pouvez définir une commande dans GDB faire ce que vous voulez, comme indiqué: xxx

maintenant que vous avez défini CheckDeFinefin, vous pouvez l'utiliser comme indiqué pour vérifier si une variable de commodité donnée , dans ce cas $ Minfly, est défini, stocker le résultat de l'enregistrement en $ fluffyisdefinefinefinefined: xxx

Si vous définissez maintenant la variable non définie précédemment, $ movey, checkdefined donnera Un résultat différent: xxx

Cette utilisation de la fonction présente l'avantage que vous n'avez pas à clocer la variable que vous souhaitez vérifier. Afin de réécrire votre construction d'origine: xxx


0 commentaires