打破pydev中的异常
Posted
技术标签:
【中文标题】打破pydev中的异常【英文标题】:Break on exception in pydev 【发布时间】:2010-10-02 02:48:43 【问题描述】:是否可以让 pydev 调试器因异常而中断?
【问题讨论】:
Run->Pydev Manage Python Exception Breakpoints UI 有一点特殊性,即该选项同时出现在 Python 透视图和 Debug 透视图的 Run 菜单中,但通常(总是?)在蟒蛇之一。我不知道为什么会这样,但在任何情况下,都应该在 Debug 透视图中启用该选项。 【参考方案1】:这是 PyDev 作者在 Run > Manage Python Exception Breakpoints 下添加的
【讨论】:
请注意,这是在 PyDev 2.2 上添加的 我发现我必须将 Eclipse 放到调试视图中才能激活菜单选项。 谢谢你和 ***!几年后它再次有用!【参考方案2】:关于任何异常?
如果我没记错的话,在 PyDev(在 Eclipse 中)这是可能的。
编辑: 再次检查,检查pdb documentation,找不到设置异常断点的方法。
如果我可以建议一个非常粗略的解决方法,但如果你必须,你可以从 try-except
块中调用你的程序,在那里设置一个断点,一旦它在 except
块中中断,就上堆栈并调试您的错误。
另一个编辑这个功能has been added to PyDev
【讨论】:
是的,有任何例外。我找不到任何关于如何在网上进行操作的参考。只有 2006 年的邮件列表和博客文章表明这是不可能的。 这个变通办法很丑陋,但很有效,所以你有我的投票权。现在我想知道我们可以在哪里提出这个功能请求。 请注意,这个答案不再是正确的答案(它现在已经过时了,因为它已被添加到 PyDev:运行 > 管理 Python 异常断点)。【参考方案3】:我尝试了大的 try-except 技巧,但它没有按预期工作,你得到了它中断的堆栈,即在 except: 块中,你无法到达异常所在的堆栈从那里升起,那是没有意义的。
更新:pydev 从 1.6.0 开始确实具有异常中断功能,但还没有 UI,需要一些代码: https://sourceforge.net/tracker/?func=detail&aid=2970886&group_id=85796&atid=577332
【讨论】:
"刚刚做了一个初始实现(暂时没有 UI)。使用它的 api 是:import pydevd pydevd.set_pm_excepthook() 或传递异常。即:set_pm_excepthook((IndexError, AssertionError))这应该在调试器中启动时工作。"以上是关于打破pydev中的异常的主要内容,如果未能解决你的问题,请参考以下文章