蟒蛇:在PDB是可以启用只有经过n命中次数断点?(python: in pdb is it poss

2019-07-17 19:43发布

在Eclipse(和几个以及其他IDE的),只有一定数量的命中后,打开断点的选项。 在Python的pdb有断点的命中次数和存在condition的命令。 我该如何连接?

Answer 1:

条件断点可以通过两种方式来设定 -

第一:当断点设置使用指定条件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)

第二:条件也可以适用于使用现有的断点condition命令。 的参数是断点ID和表达。

$ 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)

资源

更新:我写了一个简单的代码

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

调试的终端 -

$ 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


Answer 2:

我找到了答案。 这是很容易其实,有一个叫做命令ignore假设你想在1000个安打线9断点处突破:

b 9

输出: Breakpoint 2 at ...

ignore 1 1000

输出: Will ignore next 1000 crossings of breakpoint 1.

 c


文章来源: python: in pdb is it possible to enable a breakpoint only after n hit counts?