J'ai tapé help
pendant que j'étais dans la GDB mais je n'ai rien trouvé sur les étapes d'entrée, de transition et de sortie. J'ai mis un point d'arrêt dans un programme d'assemblage dans _start
(break _start
). Ensuite, j'ai tapé next
et il a terminé le débogage. Je suppose que c'est parce qu'il a fini _start
et n'a pas entrer comme je le voulais.
Quelqu'un qui peut vous aider?
help running
fournit quelques conseils:
Il y a step
et next
instuctions (et aussi nexti
et stepi
).
(gdb) help next
Step program, proceeding through subroutine calls.
Usage: next [N]
Unlike "step", if the current source line calls a subroutine,
this command does not enter the subroutine, but instead steps over
the call, in effect treating it as a single source line.
Nous pouvons donc voir que step
étapes dans les sous-programmes , mais next
passera sur sous-programmes.
Les step
et stepi
(et les next
et nexti
) se distinguent par des incréments de "ligne" ou "instruction".
step -- Step program until it reaches a different source line
stepi -- Step one instruction exactly
finish
est lié:
(gdb) help finish
Execute until selected stack frame returns.
Usage: finish
Upon return, the value returned is printed and put in the value history.
Des informations beaucoup plus utiles sont disponibles sur https://sourceware.org/gdb/onlinedocs/gdb/Continuing-and-Stepping.html
Je suis venu ici parce que j'avais la même question. J'ai finalement pensé que pour mon but à chaque fois que je pouvais utiliser quelque chose comme "sortir" 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 après. 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.
Utilisez la commande "terminer"; cela fait parfois la même chose que "sortir". Il terminera ce que fait la pile (une fonction, généralement) et passera à la ligne suivante après cela. Recherchez la commande pour plus d'informations.