我怎样才能追溯调试python异常

yod*_*lex 6 python debugging

我正在寻找一种方法来"回顾性地"调试python异常.基本上如果我的程序引发了一个未处理的异常,我希望它能够保存程序状态,以便我可以稍后返回并调试问题.

我已经看了一下pdb文档,看起来你可以这样做,但前提是你可以在异常时与程序进行交互.这对我不起作用,因为程序将在后台运行(没有控制终端).

我的第一个(注定要做的)方法是在我的程序的最高级别放置一个try/except块,在except块中从当前异常中提取traceback对象并使用pickle将其写入磁盘.我打算然后编写一个单独的程序来解开对象并使用pdb.post_mortem来调试崩溃的程序.但是回溯对象不是可选择的,但我不希望它仍然可以工作,因为它不会保存整个程序状态.

Jak*_*yer 0

您可以做的是使用twisted.python 并将回溯写入文件,它会为您提供包括异常在内的精确回溯