我最近遇到了一个名为pdb的非常酷的Python模块。对于那些不熟悉它的人来说,它非常易于使用,并且可以让您在当时的范围内访问任何内容。要使用它,只需import pdb
并将此行放在要设置断点的程序中:
pdb.set_trace()
它非常像gdb
,如果它在某种程度上建立在顶部,我不会感到惊讶。无论如何,我想知道的是:
说我已经停在我的第一个断点,评估了一些事情,现在我想完成我的程序。如何告诉调试器完成程序,不再停止任何断点?有一些命令,例如continue
,step
和next
,但这些命令似乎都不会中断运行程序的其余部分。任何人都有这方面的经验,或者我要求的东西不存在?谢谢!
答案 0 :(得分:3)
我只是覆盖pdb.set_trace函数,删除所有断点并继续
pdb.set_trace = lambda : 0
好处是您可以在调试器中进行猴子修补。
vikasdhi@redpanda:~$ cat ~/tmp/test.py
for i in range(1000):
import pdb
pdb.set_trace()
vikasdhi@redpanda:~$ python ~/tmp/test.py
> /home/vikasdhi/tmp/test.py(1)<module>()
-> for i in range(1000):
它第一次停止了
(Pdb) c
> /home/vikasdhi/tmp/test.py(1)<module>()
-> for i in range(1000):
(Pdb) c
> /home/vikasdhi/tmp/test.py(1)<module>()
-> for i in range(1000):
当我想跳过所有内容时我只需要替换功能
(Pdb) pdb.set_trace = lambda : 0
(Pdb) c
vikasdhi@redpanda:~$
答案 1 :(得分:1)
命令为cl
或clear
。
cl(ear)[文件名:lineno | bpnumber [bpnumber ...]]
使用filename:lineno参数,清除此行的所有断点。使用空格分隔的断点编号列表,清除这些断点。 不加参数,清除所有中断(但首先要求确认)。