【问题标题】:RubyMine Debugger.start is not called yetRubyMine Debugger.start 尚未调用
【发布时间】:2012-07-23 10:07:26
【问题描述】:

我在使用 RubyMine 进行调试时遇到了这个异常...

Debugger.start is not called yet.

【问题讨论】:

    标签: ruby-on-rails ruby rubymine


    【解决方案1】:

    在尝试了其他建议的解决方案一段时间后,我发现我在 gem 文件中有以下内容:

    gem "debugger"
    

    这会以某种方式导致调试器发生冲突...删除此行解决了我的问题...

    谢谢...


    来源:Debugger crashes when it hits the first breakpoint

    【讨论】:

    • 跳到链接线程的末尾,这对我有用:gem 'ruby-debug' unless ENV['RM_INFO']。请注意,您可能正在使用不同的调试器 gem,因此请根据需要替换该部分。
    【解决方案2】:

    作为 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)
    

    【讨论】:

      【解决方案3】:

      对于遇到此问题并且无法从 Gemfile 中删除调试器的其他人,值得关注 Mustafah 提供的源链接。

      讨论的进一步更新指出,您可以将unless ENV['RM_INFO'] 添加到 Gemfile(以及在调试器 gem 的任何要求之后)以使用 RM 调试器并允许项目中的其他人使用命令行调试器。

      【讨论】:

        【解决方案4】:

        如果您签入 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
        

        【讨论】:

          【解决方案5】:

          我只有一个依赖项破坏了 RubiMine 的调试器:pry-debugger。将其替换为不依赖于debuggerpry-nav 即可解决问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-12-18
            • 2017-07-26
            • 1970-01-01
            • 2018-04-05
            • 1970-01-01
            相关资源
            最近更新 更多