有没有办法在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
例如