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. continueno parece funcionar. ¿Cómo puedo salir de pdb y continuar con mi programa?
111

continuesalidas de bucles,returnsalidas de métodos / funcionescontinuedel comando pdb. No la declaración de Python.continuedebe "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:
continuedebe "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
continuecomandofuente
exitLa 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: Nonetruco 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,pdble 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 directopdby 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_numberoclear file:lineeliminar de forma permanente el punto de interrupción odisable pb_numberpara desactivarla, pero ser capaz de conmutar de nuevo.continuesu 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