当我调试循环时,调试器在遇到错误时退出。是否可以留在调试器中,以便我可以在错误发生之前调查程序的状态?
例如,
import pdb;pdb.set_trace()
for i in [1, 2, 3, 0]:
print(2/i)
我想点击c
,以便调试器在整个循环中一直运行直到最后一次迭代。然后,调试器没有退出,而是保持活动状态,这样我就可以查看导致错误的i
的值。
答案 0 :(得分:0)
您要寻找的是pdb.post_mortem
。应该将可能失败的代码封装在try / except块中,并由处理程序调用该函数,例如:
<%= raw(@blog.body) %>
执行:
try:
for i in [1, 2, 3, 0]:
print(2/i)
except Exception:
import pdb
pdb.post_mortem()
pdb shell现在处于故障点。