web-dev-qa-db-fra.com

PDB - quitter une fonction

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?

7
Kludge

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.
13
davidA

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

4
Arthur

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
1
Maroun