portable para online hacer gui debugger debug como commands python debugging workflow exit ipdb

para - python debugger portable



Saliendo del depurador de Python ipdb (4)

Como se mencionó en otra respuesta, 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 en adelante. Ahora puede usar q , quit() o Ctrl + d para salir del depurador.

Utilizo ipdb bastante a menudo para saltar a un trozo de código que está aislado, es decir, es difícil escribir un script real que lo use. En su lugar, escribo un caso de prueba mínimo con burla y salto en él.

Ejemplar para el flujo de trabajo:

def func(): ... import ipdb ipdb.set_trace() ... def test_case(): ... func() ...

Entonces, invocar

py.test test_file.py -s -k test_case

Ahora, normalmente solo marco una o dos variables, y luego quiero dejar de fumar. Cambia el código y vuelve a hacerlo.

¿Cómo puedo dejar de fumar? El manual dice q sale del depurador. No lo hace (en realidad). Debe salir varias veces antes de que el depurador finalice. El mismo comportamiento para Ctrl-C y Ctrl-D (con la frustración adicional de que presionar Ctrl-D varias veces también salga de la terminal).

¿Hay alguna manera inteligente de forzar el abandono? ¿Es este flujo de trabajo incluso sensible? ¿Cuál es la forma estándar de hacerlo?


Es el problema con la versión reciente de IPython 5.1.0. Puedes consultar con tu entorno utilizando el siguiente código:

pip freeze | egrep -i ''^i''

Se resolverá reduciendo a IPython == 5.0.0.

pip install ipython==5.0.0

Funciona para mi.


Lo siguiente me funcionó:

import sys sys.exit()

En las versiones más nuevas de ipython, como se mencionó arriba y abajo, esto no funciona. En ese caso,

import os os._exit(0)

Todavía debería hacer el truco.


.pdbrc siguiente en mi .pdbrc

import os alias kk os.system(''kill -9 %d'' % os.getpid())

kk mata al depurador y (el proceso que desencadena al depurador).