我最近遇到了一个非常酷的 Python 模块,名为 pdb 。对于那些不熟悉它的人来说,它非常易于使用,并且可以让您访问当时范围内的几乎所有内容。要使用它,您所要做的就是 import pdb
并将此行放入您要设置断点的程序中:
pdb.set_trace()
它的工作方式非常类似于gdb
,如果它在某种程度上是建立在其之上的,我不会感到惊讶。无论如何,我想知道的是:
假设我已经停在第一个断点处,评估了一些事情,现在我想完成我的程序。如何告诉调试器完成程序,而不在任何断点处停止?有一些命令,例如 continue
、step
和 next
,但这些命令似乎都不能不间断地运行程序的其余部分。有人有这方面的经验吗?还是我要求的东西不存在?谢谢!
最佳答案
我只需重写 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:~$
关于python - 如何告诉Python调试器完成程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116955/