visual studio para online how hacer gui debugger debug como code python debugging pdb

studio - python: en pdb, ¿es posible habilitar un punto de interrupción solo después de que n recuentos de hits?



python debugger online (2)

Encontré la respuesta. En realidad, es bastante fácil, hay un comando llamado ignore , digamos que quiere interrumpir el punto de interrupción en la línea 9 después de 1000 hits:

b 9

Salida: Breakpoint 2 at ...

ignore 1 1000

Salida: Will ignore next 1000 crossings of breakpoint 1.

c

En eclipse (y también en varios otros IDE) hay una opción para activar el punto de interrupción solo después de un cierto número de aciertos. En el pdb de Python hay un recuento de hits para los puntos de interrupción y está el comando de condition . ¿Cómo los conecto?


Los puntos de interrupción condicionales se pueden establecer de 2 maneras:

PRIMERO: especifique la condición cuando el punto de interrupción se establece con la break

python -m pdb pdb_break.py > .../pdb_break.py(7)<module>() -> def calc(i, n): (Pdb) break 9, j>0 Breakpoint 1 at .../pdb_break.py:9 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep yes at .../pdb_break.py:9 stop only if j>0 (Pdb) continue i = 0 j = 0 i = 1 > .../pdb_break.py(9)calc() -> print ''j ='', j (Pdb)

SEGUNDO: la condición también se puede aplicar a un punto de interrupción existente mediante el comando de condition . Los argumentos son el ID de punto de interrupción y la expresión.

$ python -m pdb pdb_break.py > .../pdb_break.py(7)<module>() -> def calc(i, n): (Pdb) break 9 Breakpoint 1 at .../pdb_break.py:9 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep yes at .../pdb_break.py:9 (Pdb) condition 1 j>0 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep yes at .../pdb_break.py:9 stop only if j>0 (Pdb)

source

ACTUALIZACIÓN: escribí un código más sencillo.

import pdb; pdb.set_trace() for i in range(100): print i

depuración en la terminal

$ python 1.py > /code/python/1.py(3)<module>() -> for i in range(100): (Pdb) l 1 2 import pdb; pdb.set_trace() 3 -> for i in range(100): 4 print i [EOF] (Pdb) break 4, i==3 Breakpoint 1 at /code/python/1.py:4 (Pdb) break Num Type Disp Enb Where 1 breakpoint keep yes at /code/python/1.py:4 stop only if i==3 (Pdb) c 0 1 2 > /Users/srikar/code/python/1.py(4)<module>() -> print i (Pdb) p i 3