如何在pydev中启用事后调试?

Seb*_*son 5 python debugging pydev

每当我的程序引发未处理的异常时我想让pydev进入交互式控制台模式,但我无法弄清楚如何做到这一点.如现在的行为,报告异常并立即终止该过程.

经过一番搜索,我发现了这个:http: //sourceforge.net/tracker/index.php? func = enter&aid = 3029746&group_id = 85796 &atid = 577332,建议使用pydevd.set_pm_excepthook()

但是,当我添加

import pydevd
pydevd.set_pm_excepthook()
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我得到一个例外:

This function is now replaced by GetGlobalDebugger().setExceptHook and is now controlled by the PyDev UI.')
DeprecationWarning: This function is now replaced by GetGlobalDebugger().setExceptHook and is now controlled by the PyDev UI.
Run Code Online (Sandbox Code Playgroud)

但:

GetGlobalDebugger().setExceptHook()
Run Code Online (Sandbox Code Playgroud)

似乎不起作用,GetGlobalDebugger()在全局命名空间中不存在.

Fab*_*zny 4

实际上,您不需要以编程方式执行此操作...您可以转到“调试”透视图>“Pydev”菜单>“管理异常断点”

图形用户界面示例

并选中“暂停未捕获的异常”。在大多数情况下,您需要捕获所有类型的异常(因此选择“全选”),但您也可以选择要单独管理的异常。

对话

  • *挂起未捕获的异常*与“pdb.post_portem(tb)”不同,后者只能在特定情况下调用并由应用程序的特定逻辑控制。您能否为所有想要这样做的人扩展您的答案,并提供有关 [PyDev.Debugger](https://github.com/fabioz/PyDev.Debugger) 中 `pdb.post_portem(tb)` 等价物的信息以编程方式? (2认同)