如何跳过使用的循环pdb.set_trace()?
例如,
pdb.set_trace()
for i in range(5):
print(i)
print('Done!')
pdb在循环之前提示。我输入了一条命令。返回所有1-5个值,然后pdb在print('Done!')执行之前再次提示我。
Answers:
尝试until声明。
转到循环的最后一行(使用next或n),然后使用until或unt。这将带您进入循环之后的下一行。
until(或它的简短形式unt)将总是走下一行(除非您按下return语句),因此您也可以使用它多次而不是n。
breakpoint()用于循环中的set python 3。在VB Editor可以接受“对飞”断点,但是这是最有可能不符合情况pdb。
在公认的答案(https://pymotw.com/3/pdb/)提到的链接中,我发现本节内容更有用:
要使执行一直运行到特定的行,请将行号传递给直到命令。
这是re:循环如何工作的示例:
它使您免于两件事:必须创建额外的断点,以及必须导航到循环的末尾(尤其是当您可能已经迭代以致无法不重新运行调试器而无法执行操作时)。
这是上的Python文档until。顺便说一句,我正在pdb++用作标准调试器的插件(因此可以设置格式),但until两者的工作原理相同。
如果我正确理解这一点。
一种可能的方法是:
一旦你得到你pdb的提示。只需点击n(下一次)10次即可退出循环。
但是,我不知道退出中的循环的方法pdb。
您可以使用r退出功能。
n,然后键入until。直到至少超过当前行为止。