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?
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.
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)