Estoy usando el módulo pdb para depurar un programa. Me gustaría entender cómo puedo salir de pdb y permitir que el programa continúe hasta su finalización. El programa es computacionalmente costoso de ejecutar, por lo que no quiero salir sin que el script intente completarse. continue
no parece funcionar. ¿Cómo puedo salir de pdb y continuar con mi programa?
111
continue
salidas de bucles,return
salidas de métodos / funcionescontinue
del comando pdb. No la declaración de Python.continue
debe "Continuar la ejecución, solo detenerse cuando se encuentra un punto de interrupción", según los documentos. ¿Tiene un conjunto de puntos de interrupción que está siendo alcanzado?pdb.set_trace()
en su código fuente?Respuestas:
continue
debe "Continuar la ejecución, solo detenerse cuando se encuentra un punto de interrupción", por lo que tiene un punto de interrupción establecido en alguna parte. Para eliminar el punto de interrupción (si lo insertó manualmente):O, si está usando
pdb.set_trace()
, puede probar esto (aunque si está usando pdb de formas más sofisticadas, esto puede romper las cosas ...)fuente
set_trace = lambda: None
:)set_trace = lambda: None
. Python org debería agregar un comando que le permita salir de pdb.Un simple Ctrl: Dsaldrá de pdb. Si desea continuar en lugar de interrumpir, simplemente presione en clugar de todo el
continue
comandofuente
exit
La respuesta de @voithos es correcta, por lo que solo agregaré una alternativa en el caso en que esté usando
set_trace
. Sí, elpdb.set_trace = lambda: None
truco funciona bien, pero no si tiene otros puntos de interrupción establecidos y desea volver a habilitarlo más adelante. Para mí, esto apunta al hecho de que, lamentablemente,pdb
le faltan un montón de funciones (incluso cosas básicas como listas de visualización), y este es otro caso.La buena noticia es que
pdb++
es un excelente reemplazo directopdb
y una de las cosas que resuelve es exactamente el problema de la desactivaciónset_trace
. Entonces, simplemente puede hacer:y luego en el
(Pdb++)
indicador, escriba:Si desea volver a habilitarlo más tarde, como era de esperar, esto funciona:
¡Fácil! Y además de eso, obtendrás muchos otros beneficios útiles.
fuente
Si realmente desea salir del depurador, debe ejecutar algo como WinPdb, que le permite desconectarse del proceso y luego salir del depurador (NB: es multiplataforma).
Si desea continuar con la depuración pero ya no se detiene en un punto de interrupción determinado, debe:
cl bp_number
oclear file:line
eliminar de forma permanente el punto de interrupción odisable pb_number
para desactivarla, pero ser capaz de conmutar de nuevo.continue
su programa se ejecutará hasta que se alcance el siguiente punto de interrupción diferente .Para obtener más detalles sobre lo anterior, consulte el manual .
fuente
encuentre una nueva forma de salir del pdb sin instalar nada: - cuando el programa comience a ejecutarse, presione ctrl + c, luego cambie la ventana a otra (cualquier ventana), luego el shell original con pdb en ejecución debería mostrar algo como: (pdb) ..... - vuelva a pdb, luego presione Enter, ahora está todo listo, el shell de comandos de pdb reaparece nuevamente
fuente