Comment quitter ipdb pendant le débogage post-mortem?

J'aime inspecter erreur dans un script Python en utilisant:

$ python3 -m pdb my_script.py

Cela me déplace dans un apb invite d'où je peux c continuer l'exécution, et quand il frappe d'erreur, je peux inspecter les variables, puis q arrêter l'exécution du script, pour revenir à mon shell.

J'ai essayé la même chose avec le module de débogueur iPython, car il est plus coloré:

$ python3 -m ipdb my_script.py

Cependant, je ne suis pas capable de quitter le débogueur une fois que j'ai fini d'inspecter l'erreur. En utilisant la commande q quit juste continue de le basculer entre la ré-exécution du script et le mode post-mortem:

$ python3 -m ipdb my_script.py
ipdb> c
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
ipdb> Inspect some variables at this point
ipdb> q
Post mortem debugger finished. The my_script.py will be restarted
ipdb> q
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
ipdb> q
Post mortem debugger finished. The my_script.py will be restarted
ipdb> q
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
ipdb> q
Post mortem debugger finished. The my_script.py will be restarted
ipdb> q
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program

Comment quitter ce débogueur?

21
demandé sur Ashwin Nanjappa 2016-08-23 03:52:03

2 réponses

C'était un bug dans IPython 5.1. Il a été corrigé dans cette requête d'extraction et n'est plus un problème à partir D'IPython 5.2 et au-delà. Vous pouvez maintenant utiliser q, quit(), ou Ctrl+d pour quitter le débogueur.

5
répondu joelostblom 2017-02-25 23:42:55

Comme l'a commenté l'utilisateur @ffeast, il y a un problème IPDB ouvert , et quelques solutions de contournement suggérées. Pour moi, ceux-ci ont bien fonctionné:

  • appuyez sur ctrl+z
  • exécuter ipdb> import os; os._exit(1)
18
répondu tutuDajuju 2016-12-17 18:40:53