如何使用
pdb.set_trace()
跳过循环?
例如,
pdb.set_trace()
for i in range(5):
print(i)
print('Done!')
循环前有pdb
提示。我输入一个命令。返回所有 1-5 值,然后我希望在 pdb
执行之前再次收到 print('Done!')
提示。
您应该在循环后设置一个断点(“break main.py:4”,假设上述行位于名为 main.py 的文件中),然后继续(“c”)。
在已接受的答案提到的链接中(https://pymotw.com/3/pdb/),我发现本节更有帮助:
要让执行运行到特定行,请将行号传递给 直到命令。
这是一个如何工作的示例:循环:
它使您免于两件事:必须创建额外的断点,以及必须导航到循环的末尾(特别是当您可能已经进行迭代时,如果不重新运行调试器就无法做到这一点)。
until
上的 Python 文档。顺便说一句,我使用 pdb++
作为标准调试器的替代项(因此是格式设置),但 until
在两者中的工作原理相同。
您可以在循环后设置另一个断点并使用
c
: 跳转到该断点(调试时)
pdb.set_trace()
for i in range(5):
print(i)
pdb.set_trace()
print('Done!')
您可以使用
tbreak <line number after loop>
。 tbreak
是一个临时断点,第一次点击时会被删除。
如果我理解正确的话。
一种可能的方法是:
一旦出现
pdb
提示。只需按 n
(下一个)10 次即可退出循环。
但是,我不知道如何退出
pdb
中的循环。
您可以使用
r
退出函数。