有没有办法在exception时启动Ruby调试器?

有没有办法在代码抛出exception时启动/ Ruby调试器,而不是像这样包装代码:

begin #do something rescue debugger end 

我想以这样的方式使用它,如果do something部分引发exception,调试器将启动。 不必修改代码就可以全部添加开始救援块。

Hammertime!

我偶然发现了这个页面: 验尸调试 。 这样做:

 Debugger.start(:post_mortem => true) 

把我带到我想要的地方。

 require 'ruby-debug' class Exception alias original_initalize initialize def initialize(*args) original_initalize(*args) debugger end end 

这将运行原始exception以及调用调试器

在RubyMine 2.0.x中,转到Run – > View Breakpoints并单击“Ruby Exception Breakpoints”选项卡,然后添加您感兴趣的exception类型…

我想在NetBeans和其他Ruby IDE中应该有类似的东西。

顺便说一句,RubyMine是最好的!

如果你正在使用ruby-debug(它看起来像你),你可以为你想要的exception设置catchPoints。

  (rdbg) catch Exception 

例如