17

对于问题的长度,我深表歉意,但我想明确表示我没有犯任何愚蠢的错误!

因此,我正在努力使用 Ruby 1.9.3 在 RubyMine 4.5 中进行调试,我的步骤如下:

Ruby 1.9.3、Ruby Gems、DevKit 和 Rails(遵循本指南)的全新(即删除了所有以前的 ruby​​ 和 gem 目录)安装 - 效果很好。

然后我尝试开始使用我团队的 ruby​​ 代码。我在 RubyMine 中打开目录(记住首先要删除.idea目录)并提示bundle install我运行(从控制台)按要求运行。这成功完成。重新启动 RubyMine。

然后我确保 Ruby 正在工作:工具 > IRB 控制台 > puts "test" #test => nil- 工作我现在尝试调试器 ( SHIFT+ F9) 并查看消息:

The gem ruby-debug-base19x required by the debugger is currently not installed. Would you like to install it?"

我单击取消并检查我的 Gemfile,目前与调试相关的唯一文件是:

# Debugging
gem 'debugger'
#gem 'ruby-debug-base19', :require => false
#gem 'ruby-debug19', :require => false
gem 'ruby-prof', :require => false #, :git => 'git://github.com/wycats/ruby-prof.git'

看起来我们有调试器支持ruby-debug. 但是,在这里阅读似乎debugger还不够。我需要安装ruby-debug-base19x. 所以,在SO之后,我从 Gemfile 中注释掉调试器并运行

gem install ruby-debug-base19x --pre
gem install ruby-debug-ide --pre

哪个运行良好,所以我添加

gem 'ruby-debug-base19x', '0.11.30.pre10'
gem 'ruby-debug-ide', '0.4.17.beta14'

到我的 Gemfile,然后bundle install从控制台运行。

最后,我在 RubyMine (SHIFT + F9) 中打开调试器。并puts "test" #test => nil再次工作。所以我尝试双击我的脚本的排水沟来创建一个断点,RubyMine 暂停了一秒钟,然后我得到:

D:\Ruby\Ruby193\bin\ruby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/bin/rdebug-ide --dispatcher-port 55451 --port 55452 -- S:/code/account_groups/script/rails console
Fast Debugger (ruby-debug-ide 0.4.17.beta14, ruby-debug-base 0.11.30.pre10) listens on 127.0.0.1:55452
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby_debug.so: warning: already initialized constant VERSION
5992: Exception in DebugThread loop: undefined method `errmsg' for #<Debugger::ControlState:0x2a2f3e8>
Backtrace:
D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/command.rb:160:in `errmsg'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/debugger-1.1.4/lib/ruby-debug/commands/breakpoints.rb:81:in `execute'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:89:in `block in process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `catch'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide/ide_processor.rb:86:in `process_commands'
  from: D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-debug-ide-0.4.17.beta14/lib/ruby-debug-ide.rb:160:in `block in start_control'

Process finished with exit code 0

我还尝试使用代码的备份副本并遵循相同的步骤,尝试加载调试器时也出现以下错误:

Uncaught exception: cannot load such file -- ruby-debug
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/lib/systematic-online/r_spec_runner.rb:5:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    S:/code/account_groups_so/config/environment.rb:12:in `block in <top (required)>'
    S:/code/account_groups_so/config/environment.rb:12:in `each'
    S:/code/account_groups_so/config/environment.rb:12:in `<top (required)>'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/application.rb:103:in `require_environment!'
    D:/Ruby/Ruby193/lib/ruby/gems/1.9.1/gems/railties-3.2.6/lib/rails/commands.rb:40:in `<top (required)>'
    S:/code/account_groups_so/script/rails:6:in `require'
    S:/code/account_groups_so/script/rails:6:in `<top (required)>'

脚本没有任何问题(我以前用过很好),并且跟踪似乎与ruby-debug-ide- 发生了什么事?

感谢您的帮助 - 这让我发疯!

4

6 回答 6

17

更新:RubyMine 6+ 支持调试器 gem。

确保gem 'debugger'从您的 中删除Gemfile,这是一个已知的冲突,会破坏 RubyMine 的调试。您只需要 2 个与调试器相关的宝石,正如我在您的问题中链接的另一个答案中所述。

删除 gem 后,您需要确保在项目的任何地方都没有引用它。在这种特殊情况下,尝试运行时r_spec_runner.rbrequire 'ruby-debug'语句导致错误。cannot load such file -- ruby-debugrails console

于 2012-07-26T17:45:24.950 回答
9

为了避免这个问题,我在我的Gemfile
gem 'debugger' unless ENV["RM_INFO"]

于 2012-10-11T12:57:45.323 回答
6

只是为了记录jetbrains的解决方案:使用以下任一:

gem 'debugger', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

或者:

gem 'pry-debug', {group: [:test, :development]}.merge(ENV['RM_INFO'] ? {require: false} : {})

这确保了 Gemfile.lock 保持不变,因此混合了 RubyMine 和 vi/sublime/whatever 的组可以愉快地工作,因为在 RubyMine 环境中不需要 gem。

于 2013-03-18T14:33:45.487 回答
3

我遇到了同样的问题,我花了好几个小时才让它工作。这是最终让调试器运行的原因(这是使用 RVM):

  • 退出 RubyMine
  • 如果安装了 Ruby 1.9.3,请将其卸载:rvm remove 1.9.3
  • 在 RVM 下安装 Ruby 1.9.3:rvm install 1.9.3 --with-gcc=clang- 这会产生错误“不支持的选项 '--with-libyaml'”,但我还没有看到任何不良影响
  • 切换到新的红宝石:rvm use 1.9.3
  • 列出并删除所有 ruby​​-debug* gem: gem list | grep debug-gem uninstall <found gems>
  • 从http://rubyforge.org/frs/?group_id=8883下载 linecache19并安装 gem,即:gem install linecache19-0.5.13.gem
  • 启动 RubyMine,并运行调试器;它将通知缺少调试 gem(即 ruby​​-debug-ide);让 RubyMine 安装这些。

那是调试器开始工作的时候。另请参阅此 RubyMine 支持讨论:http ://devnet.jetbrains.com/message/5443846#5443846

于 2012-09-02T17:14:43.957 回答
0

今天终于用一个巨大的 kludge hack 完成了这个工作。我认为做到这一点的步骤是

  1. sudo chmod -R 777 ~/.rvm

  2. 让 RubyMine 做它的事

我还确保卸载我拥有的所有 gem rake。我认为reby-debug-ide, ruby-debug-base19x, linecache19, ruby_core_source, archive-tar-minitar, 和columnize是重要的。rvm我还用clang卸载并重新安装。但我会尝试先做 chmod 的事情。我尝试更改为 766,但 RubyMine 不喜欢它。它是如此巨大的kludge hack。我现在收到很多警告,Insecure world但至少调试器正在工作。很确定 RubyMine 的下一个版本不会使用旧的ruby​​-debug-base19x,而是使用最近在https://github.com/ruby-debug编辑的 gem 。所以希望很棒的 JetBrains 的某个人会修复它。顺便说一句,也尝试使用 RubyMine 运行,sudo mine但这也没有成功。

于 2013-02-03T21:50:31.200 回答
0

我的调试器有一些问题。我安装了 Rails 并将配置选项中的路径设置为 rails 安装中的 ruby​​.exe,一切正常。

于 2016-03-06T22:05:18.437 回答