我正在寻找一种方法来“回顾”调试python异常。本质上,如果我的程序引发了一个未处理的异常,我希望它能够保存程序状态,以便稍后返回并调试问题。我如何追溯调试python异常
我已经看了一下pdb文档,看来你可以做到这一点,但前提是你可以在异常时与程序进行交互。这对我来说不起作用,因为程序将在后台运行(没有控制终端)。
我的第一个(注定失败!)方法是在我的程序的最高级别放置try/except块,并在except块中从当前异常中提取traceback对象并使用pickle将其写入磁盘。然后,我计划编写一个单独的程序,以取消对象的使用并使用pdb.post_mortem来调试崩溃的程序。但是回溯对象不是可以选择的,但我不希望它能够继续工作,因为它不会保存整个程序状态。
这并不能解决您的问题,而是将您的整个程序包装在`try`语句中,可能更好的方法是将未捕获的异常分配给[`sys.excepthook`]( http://docs.python.org/library/sys.html#sys.excepthook)。 – aaronasterling 2010-11-26 22:20:20