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