我在使用 RubyMine 进行调试时遇到了这个异常......
Debugger.start is not called yet.
在尝试了其他建议的解决方案一段时间后,我发现我在 gem 文件中有以下内容:
gem "debugger"
这会以某种方式导致调试器发生冲突...删除此行解决了我的问题...
谢谢...
作为 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
. 将其替换为pry-nav
不依赖于 的debugger
,解决了问题。