debugger python ipython pdb ipdb

debugger - pdb en python



¿Cómo salir de ipdb en la depuración post-mortem? (2)

Como comentó el usuario @ffeast, hay github.com/gotcha/ipdb/issues/111 y se sugieren algunas soluciones. Para mi estos funcionaron bien:

  • presiona ctrl + z
  • ejecuta ipdb> import os; os._exit(1) ipdb> import os; os._exit(1)

Me gusta inspeccionar el error en un script de Python usando:

$ python3 -m pdb my_script.py

Esto me deja en un indicador de pdb desde donde puedo continuar la ejecución, y cuando aparece el error, puedo inspeccionar las variables y luego salir de la ejecución del script para volver a mi shell.

Intenté lo mismo con el módulo de depuración iPython, ya que es más colorido:

$ python3 -m ipdb my_script.py

Sin embargo, no puedo salir del depurador una vez que termine de inspeccionar el error. El uso del comando q quit simplemente continúa cambiando entre la ejecución del script y el modo 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

¿Cómo salir de este depurador?


Esto fue un error en IPython 5.1. Se solucionó en esta solicitud de extracción y ya no es un problema de IPython 5.2 y posteriores. Ahora puede usar q , quit() o Ctrl + d para salir del depurador.