【问题标题】:Break on exception in pydev打破pydev中的异常
【发布时间】:2010-10-02 02:48:43
【问题描述】:

是否可以让 pydev 调试器因异常而中断?

【问题讨论】:

  • Run->Pydev Manage Python Exception Breakpoints UI 有一点特殊性,即该选项同时出现在 Python 透视图和 Debug 透视图的 Run 菜单中,但通常(总是?)在蟒蛇之一。我不知道为什么会这样,但在任何情况下,都应该在 Debug 透视图中启用该选项。

标签: python eclipse debugging exception pydev


【解决方案1】:

这是 PyDev 作者在 Run > Manage Python Exception Breakpoints 下添加的

【讨论】:

  • 请注意,这是在 PyDev 2.2 上添加的
  • 我发现我必须将 Eclipse 放到调试视图中才能激活菜单选项。
  • 谢谢你和 StackOverflow!几年后它再次有用!
【解决方案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))这应该在调试器中启动时工作。"
猜你喜欢
  • 2011-08-11
  • 1970-01-01
  • 2013-03-27
  • 2010-11-09
  • 2011-08-15
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
相关资源
最近更新 更多