Puis-je quitter une fonction après y être entré avec step
tout en utilisant le débogueur pdb/ipdb?
Et s’il n’ya pas d’option de ce type, quel est le moyen le plus rapide de sortir de la fonction de remplacement?
Comme mentionné par Arthur dans un comment , vous pouvez utiliser r(eturn)
pour exécuter l'exécution jusqu'à la fin de la fonction en cours, puis vous arrêter, ce qui revient presque en dehors de la fonction en cours. Puis entrez n(ext)
une fois pour terminer l’étape, puis revenez à l’appelant.
La documentation est ici .
(Pdb) ?r
r(eturn)
Continue execution until the current function returns.
step
continuera l'exécution. Pour monter et descendre de la pile d'appels, vous pouvez utiliser up
(passer à la fonction appelante), puis down
pour revenir en arrière.
Consultez la doc: https://docs.python.org/3.6/library/pdb.html#pdbcommand-step
Vous pouvez simplement ajouter un point d'arrêt en dehors de la fonction et continuer jusqu'à ce que vous l'atteigniez. Par exemple, si l'appel de votre fonction est à la ligne 14, vous pouvez:
(Pdb) b 15
(Pdb) c