2013-01-03 1 views

Antwort

10

fand ich die Antwort. Es ist ziemlich eigentlich einfach, es gibt einen Befehl namens ignore sagen wir, Sie in Zeile 9 nach 1000 Treffer auf Breakpoint brechen wollen:

b 9 

Ausgang: Breakpoint 2 at ...

ignore 1 1000 

Ausgang: Will ignore next 1000 crossings of breakpoint 1.

c 
13

Bedingte Haltepunkte können in zwei Arten eingestellt werden -

FIRST: den Zustand angeben, wenn der Haltepunkt 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) 

zweiten Satz verwendet: Zustand auch zu einem bestehenden angewandt werden kann, Haltepunkt mit dem Befehl condition. Die Argumente sind die Haltepunkt-ID und der Ausdruck.

$ 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

UPDATE: Ich schrieb einen einfachen Code

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

Debugging auf 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 
+0

gibt es anstelle von 'j' eine Variable, die die Trefferanzahl für diesen Haltepunkt enthält? – zenpoy

+0

'j' ist die aktuelle Schleifeniteration. Was meinst du "Trefferanzahl für diesen Haltepunkt"? –

+0

Danke, ich habe die Antwort gefunden .. – zenpoy