使用Ruby和Rubymine,或者其他调试器,是否可以在出现错误时进入调试模式?

使用Ruby和Rubymine,或者其他调试器,是否可以在出现错误时进入调试模式?,ruby,debugging,rubymine,Ruby,Debugging,Rubymine,我似乎找不到关于这件事的任何信息。它要么不存在,要么我使用了错误的搜索词 我了解使用断点和其他受控执行模式进行调试。但是,我想做的是在出现错误情况时打开调试器。我在其他IDE中也有这种功能,但我在这里没有看到 我错过什么了吗?有这样做的选项吗?如果我理解正确,当出现异常时,您需要停止程序。您应该添加一个,以便运行脚本并仅在代码中的特定点(如果达到该点)打开调试器。也就是说,您不想在调试器下启动脚本,而是正常启动它。也许启动脚本有一些复杂性,这是调试器的阻碍 仅在ruby中(不使用RubyMine

我似乎找不到关于这件事的任何信息。它要么不存在,要么我使用了错误的搜索词

我了解使用断点和其他受控执行模式进行调试。但是,我想做的是在出现错误情况时打开调试器。我在其他IDE中也有这种功能,但我在这里没有看到


我错过什么了吗?有这样做的选项吗?

如果我理解正确,当出现异常时,您需要停止程序。您应该添加一个

,以便运行脚本并仅在代码中的特定点(如果达到该点)打开调试器。也就是说,您不想在调试器下启动脚本,而是正常启动它。也许启动脚本有一些复杂性,这是调试器的阻碍

仅在ruby中(不使用RubyMine),这可以通过一些调试宝石实现。我的建议是打听。您可以获得pry的强大功能以及一个可运行的调试器,并且您可以随时从代码中启动它,而无需任何准备工作。

在RubyMine中,您无法真正使用此选项,因为您无法对脚本进行交互控制。您需要使用RubyMine调试器来启动脚本。但如果你能做到这一点,在你想停的地方停下来是很容易的。或者从RubyMine中在该行上设置断点。或者在代码中引发异常,并让RubyMine停止该异常。如果您的代码和依赖库尚未在内部引发和拯救异常,那么您可以让RubyMine停止所有异常,这很容易做到。

是,使用

从自述文件:


pry rescue是Ruby的“未处理异常中断”的实现。每当出现异常但未被营救时,pry rescue将自动为您打开pry“

我认为异常断点可能就是我想要的。我昨天很快就试过了,但没有成功,但我需要花一些时间来真正理解它。这是第一个最好的答案,尽管后面还有更多信息。然而,Rubymine的一个bug目前阻止了我使用它。看到了。这个bug已经修补好了,所有的都在当前的Rubymine版本中工作。我曾经关注过Pry调试器,并认为这可能是一个选项。如上所述,由于我在Rubymine,我认为一旦我完成了它,异常断点可能就是它。我了解了如何通过编辑异常断点并选中复选框来设置异常断点。但是,这对我来说没有什么区别。常规断点仍然有效。但是,异常不会触发调试器。我只是在浏览器中看到标准错误屏幕,显示调试信息。Rubymine调试器不会被触发,并且只显示变量列表下的“已连接”信息。是否有一些我需要的宝石或设置支持此功能?我联系了JetBrains,他们将此故障报告为错误。可以在一家商店看到。
def some_method
  binding.pry          # Execution will stop here.
  puts 'Hello World'   # Run 'step' or 'next' in the console to move here.
end