【发布时间】:2012-07-23 10:07:26
【问题描述】:
我在使用 RubyMine 进行调试时遇到了这个异常...
Debugger.start is not called yet.
【问题讨论】:
标签: ruby-on-rails ruby rubymine
我在使用 RubyMine 进行调试时遇到了这个异常...
Debugger.start is not called yet.
【问题讨论】:
标签: ruby-on-rails ruby rubymine
在尝试了其他建议的解决方案一段时间后,我发现我在 gem 文件中有以下内容:
gem "debugger"
这会以某种方式导致调试器发生冲突...删除此行解决了我的问题...
谢谢...
【讨论】:
gem 'ruby-debug' unless ENV['RM_INFO']。请注意,您可能正在使用不同的调试器 gem,因此请根据需要替换该部分。
作为 Mustafah 评论的附录,我花了一段时间才找到这个问题的变体:
gem 'pry-full'
gem 'debugger'
这两行都导致了问题,所以我不得不改为:
unless ENV['RM_INFO']
gem 'pry-full'
gem 'debugger'
end
您如何知道哪些 gem 可能会间接加载调试器 gem?在您的 Gemfile.lock 中查找表明这种依赖关系的条目:
pry-debugger (0.2.2)
debugger (~> 1.3)
pry (~> 0.9.10)
【讨论】:
对于遇到此问题并且无法从 Gemfile 中删除调试器的其他人,值得关注 Mustafah 提供的源链接。
讨论的进一步更新指出,您可以将unless ENV['RM_INFO'] 添加到 Gemfile(以及在调试器 gem 的任何要求之后)以使用 RM 调试器并允许项目中的其他人使用命令行调试器。
【讨论】:
如果您签入 Gemfile.lock,其他解决方案将不起作用 - 它会根据生成它的机器而有所不同(没有尝试过,但很确定这是真的)。
相反,我将 gem 放在 Gemfile 中一个单独的非默认部分:
group :debugging do
gem 'debugger'
end
然后,在 application.rb 中,我有条件地要求它。另外,我没有 RM_INFO,所以我检查了 RUBYLIB env var:
Bundler.require(:default, Rails.env) if defined?(Bundler)
unless ENV['RUBYLIB'] =~ /RubyMine/
require 'debugger'
end
【讨论】:
我只有一个依赖项破坏了 RubiMine 的调试器:pry-debugger。将其替换为不依赖于debugger 的pry-nav 即可解决问题。
【讨论】: