【问题标题】:Ruby Debugger in RubyMineRubyMine 中的 Ruby 调试器
【发布时间】:2011-05-05 20:33:21
【问题描述】:

我正在尝试在 Rubymine 中运行调试器,但我不断收到此错误。

/Users/skline/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide --port 49877 -- /Users/skline/Sites/2t2/app/mailers/user_notifications.rb
Fast Debugger (ruby-debug-ide 0.4.17.beta3, ruby-debug-base 0.11.26) listens on 127.0.0.1:49877
    <internal:lib/rubygems/custom_require>:29:in `require'
    <internal:lib/rubygems/custom_require>:29:in `require'
    /Users/skline/Sites/2t2/app/mailers/user_notifications.rb:1:in `<top (required)>'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_load'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/lib/ruby-debug-ide.rb:112:in `debug_program'
    /Users/skline/.rvm/gems/ruby-1.9.2-p136/gems/ruby-debug-ide-0.4.17.beta3/bin/rdebug-ide:87:in `<top (required)>'
    -e:1:in `load'
    -e:1:in `<main>'
Uncaught exception: no such file to load -- safe_mailer

Process finished with exit code 0

有什么想法吗?

【问题讨论】:

  • 解决方案是什么?接受的答案告诉我的很少。

标签: rubymine ruby-debug


【解决方案1】:

您的应用中的 gem 或其他依赖项似乎发生了变化。您报告的错误似乎已经嵌入了答案:检查您的 /app/mailers/user_notifications.rb 并查看第 1 行要求的要求。然后查看第 29 行的 lib/rubygems/custom_require。这两个文件之一似乎在要求它找不到的东西。我对您使用的 gem 没有经验,但您似乎错过了 gem 依赖项、Gem 版本错误或包含不再存在或已移动/更改名称的内容的语句。

【讨论】:

    【解决方案2】:

    问题

    我在使用 RubyMine 2016.2.4 的 Run > Debug 时遇到了类似的错误。

    /Users/Mp/.rvm/rubies/ruby-2.3.0/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/Mp/.rvm/gems/ruby-2.3.0@global/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide --disable-int-handler --evaluation-timeout 10 --rubymine-protocol-extensions --port 54743 --host 0.0.0.0 --dispatcher-port 54744 -- /Users/Mp/code/apps/ruby_test/team_system/team.rb
    Fast Debugger (ruby-debug-ide 0.6.0, debase 0.2.1, file filtering is supported) listens on 0.0.0.0:54743
    
    Process finished with exit code 0
    

    最初,当我在示例 ruby​​ 文件 team.rb 中设置断点并运行 Run > Debug 时它工作(控制台显示 0&gt; 而不是 Process finished with exit code 0

    class Team attr_reader :size def initialize(size) @size = size end end team = Team.new(100)

    我花了几个小时试图解决它,但没有成功,在互联网上关注帖子。我准备重新安装 RubyMine,我决定联系他们的支持电子邮件。我告诉我已经尝试了所有方法,例如:

    • 重新启动我的电脑
    • 重新启动 RubyMine 并运行 rm -rf .idea
    • 正在运行gem pristine --all
    • 尝试使用 ruby​​ 2.1.2 而不是 2.3.0(即 rvm install 2.1.2 rvm list rvm use 2.1.2
    • 检查我的 RVM 版本 rvm -v rvm 1.26.11
    • 使用gem envwhich ruby 检查宝石的位置。这表明它们都在 /usr/bin/ruby 和 /Users/Ls/.rvm/rubies/ruby-2.3.0/bin/ruby 中
    • 在全局 Ruby 位置和默认 RVM 中卸载(即 gem uninstall ...)相关 gem
    • 重新安装它们 $ gem install debug_inspector $ gem install debugger-linecache $ gem install ruby-debug-ide $ gem install debase $ gem install debase-ruby_core_source $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug_inspector $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debug-linecache $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global ruby-debug-ide $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase $ gem install -i /Users/Ls/.rvm/gems/ruby-2.3.0@global debase-ruby_core_source $ gem install linecache19-0.5.13.gem
    • 正在运行bundle update
    • 更新到 RubyMine 2016.2.4
    • 转到文件 > 默认设置 > 语言和框架 > Ruby SDK 和 Gems > 并选择使用 RVM:ruby-2.3.0
    • Going to Run > Edit Configurations for current ruby​​ file,并在 Configuration 选项卡中单击“Use Other SDK”并选择 RVM: ruby​​-2.3.0 [global](我也尝试只选择 RVM: ruby​​-2.3.0 )

    解决方案

    我从 RubyMine 支持获得反馈,建议我向他们展示 gem list 的输出并打开详细输出(设置 > 构建、执行、部署 > 调试器 > 详细调试器)。

    他们的反馈没有立即回复,而是给了我一个强有力的线索,这一定是由 gem 冲突引起的,所以我尝试了以下方法,让它再次工作!

    • 已清除 RubyMine 缓存 File &gt; Invalidate Caches &amp; Restart &gt; Invalidate Caches &amp; Restart
    • 显示了在 RVM 2.3.0(全局)和 RVM 2.3.0(默认)中全局存储的 Ruby gem。注意:我已经过滤了下面显示的列表,只显示相关的列表

    $ GEM_PATH=$GEM_HOME gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

    $ rvm ruby-2.3.0 do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) debugger-linecache (1.2.0) linecache19 (0.5.13) ruby-debug-ide (0.6.1.beta2, 0.6.0) ruby_core_source (0.1.5)

    $ rvm ruby-2.3.0 @global do gem list LOCAL GEMS debase (0.2.1) debase-ruby_core_source (0.9.2) debug_inspector (0.0.2) linecache19 (0.5.13) ruby-debug-ide (0.6.0)

    • 已安装最新版本的 Ruby $ rvm install ruby-2.3.1
    • 在 RVM 2.3.1(全局)和 RVM 2.3.1(默认)中显示 Ruby gem。两者结果相同

    $ rvm ruby-2.3.1 do gem list $ rvm ruby-2.3.1 @global do gem list LOCAL GEMS bigdecimal (1.2.8) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) rvm (1.11.3.9) test-unit (3.1.5)

    • 检查 RVM 的当前版本并从 1.26.11 升级到最新版本 1.27.0 $ rvm -v $ rvm get stable $ rvm reload $ rvm list
    • 创建了一个 Gemset 专门用于容纳 gem 以使用 RubyMine 测试功能https://rvm.io/gemsets/basics rvm ruby-2.3.1 do rvm gemset create rubymine_2016_4_2
    • 检查的 Ruby 版本已更改 $ ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin15]
    • 打开 RubyMine 2016_2_4 并转到文件 > 默认设置 > 语言和框架 > Ruby SDK 和 Gems。我取消选择 RVM:ruby-2.3.0,然后选择 RVM:ruby-2.3.1 ruby​​mine_2016_2_4。然后我单击“绿色对勾”图标将其用于项目,最后单击确定
    • 打开我想要调试的 team.rb 文件后,我打开了运行 > 编辑配置。然后我选择了Other SDK: RVM: ruby​​-2.3.1 [rubymine_2016_2_4],最后点击OK。这导致出现一个弹出窗口,说明:“当前未安装调试器所需的 gem debase。您要安装它吗?”。我点击了是
    • 查看 RubyMine 如何更改我的自定义 ruby​​mine_2016_2_4 gemset

    $ rvm ruby-2.3.1@rubymine_2016_2_4 do gem list LOCAL GEMS bigdecimal (1.2.8) debase (0.2.2.beta8, 0.2.1) debase-ruby_core_source (0.9.2) did_you_mean (1.0.0) gem-wrappers (1.2.7) io-console (0.4.5) json (1.8.3) minitest (5.8.3) net-telnet (0.1.1) power_assert (0.2.6) psych (2.0.17) rake (10.4.2) rdoc (4.2.1) ruby-debug-ide (0.6.1.beta2) rvm (1.11.3.9) test-unit (3.1.5)

    • 通过在示例 ruby​​ 文件 team.rb 中设置断点再次尝试调试,然后运行 ​​Run > Debug。它工作并控制台显示0&gt;而不是Process finished with exit code 0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多