1

除了将所有代码包装进去之外try except,还有什么方法可以实现与运行脚本一样的功能python -mpdb script吗?我希望能够看到引发异常时出了什么问题。

4

3 回答 3

3

如果你不想修改源代码,那么你可以从ipython运行它——一个增强的交互式 python shell。

例如,运行 ipython 然后执行%pdb on以启用事后调试。 %run scriptname然后将运行脚本并在任何未捕获的异常上自动进入调试器。

或者%run -d scriptname将在调试器中启动脚本。

于 2010-02-25T20:23:35.457 回答
1
python -i script

当引发异常时,会将您留在交互式外壳中;然后

import pdb
pdb.pm()

会让你进入事后调试器,这样你就可以做所有通常的调试事情。

只要您的脚本不调用 sys.exit,这应该可以工作。(哪些脚本不应该这样做,因为它破坏了这种非常有用的技术!以及使它们更难编写测试。)

于 2010-02-26T04:30:49.633 回答
-1

import pdb; pdb.set_trace()

来源:http ://docs.python.org/library/pdb.html

于 2010-02-25T20:18:08.593 回答