我一直在尝试进行事后调试(Post-mortem debugging),但遇到了一些问题。考虑下面这个名为example.py
的Python脚本:
k = 0
print 1. / k
print 'continue ...'
我可以用以下方式运行:
> python -m pdb example.py
然后进入第二行 print 1. / k
,然后设置 k = 1
并继续使用 pdb 命令 c
。
现在如果我使用事后调试来执行程序,则无法继续程序执行。 我使用以下命令运行:
> python -i example.py
然后在我被放入shell后,我执行:
import pdb
pdb.pm()
我仍然可以像以前一样更改k
的值,但无法继续任何程序执行。Pdb只是简单地退出。
我无法找到任何明确说明您不能在事后逐步执行程序的地方。这似乎是事实。那么我想了解事后调试的价值。它的唯一价值是检查错误发生时代码的状态吗?
python -m pdb_set_trace example.py
或者python -m ipdb -c breakpoint example.py
这样的东西会很棒。 - fariaseduv