ipdb调试器,退出循环

时间:2015-07-03 00:40:59

标签: python debugging ipdb

是否有一个命令可以在ipdb上调试时跳出循环(例如,for或while)而不必使用断点?

我使用until命令跳出列表推导,但不知道如果可能的话,我怎么能做整个循环块的类似事情。

4 个答案:

答案 0 :(得分:18)

您可以使用j <line number> (jump)转到另一行。 例如,j 28转到第28行。

答案 1 :(得分:13)

我相信这是until命令的意图。它类似于next,除了当循环的前一个行号发生跳转时,它将一直持续到退出循环。

unt(il)
Continue execution until the line with a number greater than the current
one is reached or until the current frame returns

通常,要“退出”当前功能,请使用return

r(eturn)
Continue execution until the current function returns.

答案 2 :(得分:6)

这听起来很明显:跳跃让你跳跃。 这意味着您不执行跳转的行:您应该使用它来跳过您不想运行的代码。

您可能需要 tbreak (临时断点,在首次点击时会自动删除。参数与break相同)就像我在找到此页面时所做的那样。

答案 3 :(得分:1)

如果您愿意使用其他调试器,trepan,您可以采取更多方法。它更像gdb。因此,您可以计算您想要步数的次数。或者你可以在continue调试器命令中给出一个行号,它实际上在该行设置一个临时断点,然后发出&#34; continue&#34;。其他改变步进的事情是"set different"。另请参阅step上可以添加的偶数后缀。

请注意,与ipdb一样,源文本的语法高亮显示。