J'ai tapé help
pendant que j'étais dans la BDG mais je n'ai rien trouvé à propos d'introduction, de remplacement et de sortie progressive. Je mets un point d'arrêt dans un programme d'assemblage dans _start
( break _start
). Ensuite, j'ai tapé next
et le débogage terminé. Je suppose que c'est parce qu'il a fini _start
et n'a pas étape en tant que je voulais.
Quelqu'un qui peut aider?
debugging
programming
gdb
Pichi Wuana
la source
la source
Réponses:
help running
fournit quelques astuces:Il y a
step
etnext
instuctions (et aussinexti
etstepi
).Nous pouvons donc voir que les
step
étapes dans les sous-routines, maisnext
passera sur les sous-routines.Le
step
etstepi
(et lenext
etnexti
) distinguent par incréments de "ligne" ou "d'instruction".Connexes est
finish
:Des informations plus utiles sont disponibles sur https://sourceware.org/gdb/onlinedocs/gdb/Continuing-and-Stepping.html
la source
for(i=0;i<10;i++) { printf("%d\n",i); }
est une ligne source mais plusieurs instructions.finish
commande complète le cadre de pile actuel, qui termine normalement le sous-programme actuel et revient à l'appelant.Je suis venu ici parce que j'avais la même question. J'ai finalement pensé que, chaque fois que je pouvais utiliser quelque chose comme une "sortie en boucle" d'une boucle, je pouvais simplement définir un autre point d'arrêt après la boucle, puis laisser le programme
continue
terminer la boucle et exécuter le point d'arrêt par la suite. Désolé si cela est évident pour la plupart des gens, mais c'est probablement utile pour quelqu'un qui cherche une réponse à cette question.la source