在 ipdb 上进行调试时,是否有一个命令可以退出循环(例如,for 或 while),而不必使用断点?
我使用该until
命令跳出列表推导,但如果可能的话,我不知道如何对整个循环块做类似的事情。
我相信这是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.
您可以使用j <line number> (jump)
转到另一条线路。例如,j 28
转到第 28 行。
这听起来很明显:jump 让你 jump。这意味着您不会执行您跳转的行:您应该使用它来跳过您不想运行的代码。
您可能需要tbreak(临时断点,第一次命中时会自动删除。参数与 break 相同),就像我在找到此页面时所做的那样。
如果你愿意使用另一个调试器,trepan,你可以使用更多的方法。它更像 gdb。所以你可以计算你想踩多少次。或者,您可以在continue调试器命令中提供行号,该命令实质上在该行设置一个临时断点,然后发出“继续”。其他改变步进的东西是“设置不同”。另请参阅可以放在step上的偶数后缀。
请注意,与 ipdb 一样,源文本有语法高亮显示。