¿Cómo puedo omitir un bucle usando pdb.set_trace()
?
Por ejemplo,
pdb.set_trace()
for i in range(5):
print(i)
print('Done!')
pdb
mensajes antes del bucle. Introduzco un comando. Se devuelven todos los valores de 1 a 5 y luego me gustaría que se me solicitaran pdb
nuevamente antes de que se print('Done!')
ejecute.
n
, y luego escribauntil
. Esto continuará hasta que al menos se exceda la línea actual.f
utilizado por ladebug
función de R que "finaliza la ejecución del ciclo o función actual" ( adv-r.hadley.nz/debugging.html )?until
(o su forma abreviadaunt
) sin argumentos siempre irá hacia abajo en una línea (a menos que presione una declaración de retorno), por lo que también puede usarlo varias veces en lugar den
.breakpoint()
set in the loop inpython 3
. ElVB Editor
puede aceptar puntos de ruptura 'sobre la marcha', pero esto es más probable no es el caso conpdb
.Debe establecer un punto de interrupción después del bucle ("romper main.py:4" asumiendo que las líneas anteriores están en un archivo llamado main.py) y luego continuar ("c").
fuente
En el enlace mencionado por la respuesta aceptada ( https://pymotw.com/3/pdb/ ), encontré esta sección algo más útil:
Aquí hay un ejemplo de cómo eso puede funcionar re: bucles:
Le ahorra dos cosas: tener que crear puntos de interrupción adicionales y tener que navegar hasta el final de un bucle (especialmente cuando es posible que ya haya iterado de tal manera que no podría hacerlo sin volver a ejecutar el depurador).
Aquí están los documentos de Python
until
. Por cierto, lo estoy usandopdb++
como un complemento para el depurador estándar (de ahí el formato) perountil
funciona igual en ambos.fuente
Puede establecer otro punto de interrupción después del bucle y saltar a él (al depurar) con
c
:fuente
Si entendí esto correctamente.
Una forma posible de hacer esto sería:
Una vez que reciba el
pdb
aviso. Simplemente presionen
(siguiente) 10 veces para salir del ciclo.Sin embargo, no conozco una forma de salir de un bucle
pdb
.Sin embargo, podría usar
r
para salir de una función.fuente