web-dev-qa-db-ja.com

Ruby 1.9.3を使用してRubyMine4.5でデバッグできません

質問の長さについてお詫びしますが、私は愚かな間違いを犯していないことを明確にしたいと思います!

そのため、Ruby 1.9.3を使用して、RubyMine 4.5でデバッグを機能させるのに苦労しています。私の手順は、次のとおりです。

フレッシュ(つまり、以前のすべてのRubyおよびgemディレクトリを削除した)インストールRuby 1.9.3、Ruby Gems、DevKitおよびRails(following this guide )-これは正常に機能します。

次に、チームの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が1秒間一時停止してから、次のようになります。

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に関連しているようです-何が起こっているのでしょうか?

助けてくれてありがとう-これは私を怒らせている!

17
rwb

[〜#〜] update [〜#〜]:RubyMine6 +はデバッガーgemをサポートします。

Gemfileからgem 'debugger'を必ず削除してください。これは既知の競合であり、RubyMineからのデバッグが中断されます。質問にリンクされている私の 別の回答 で述べられているように、デバッガーに関連するgemは2つだけ必要です。

Gemを削除した後、プロジェクト内のどこにも参照されていないことを確認する必要があります。この特定のケースでは、r_spec_runner.rbrequire 'Ruby-debug'ステートメントがあり、cannot load such file -- Ruby-debugを実行しようとするとRails consoleエラーが発生しました。

17
CrazyCoder

この問題を回避するために、Gemfileに次の行があります。
gem 'debugger' unless ENV["RM_INFO"]

9
code1n

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環境でgemを必要としないことにより、RubyMineとvi/sublime/whateverが混在するグループが問題なく機能します。

6
JAR.JAR.beans

私も同じ問題を抱えていて、それを機能させるのに何時間もかかりました。これが最終的にデバッガーを動かしたものです(これはRVMを使用しています):

  • RubyMineを終了します
  • Ruby 1.9.3がインストールされている場合は、アンインストールします:rvm remove 1.9.3
  • インストールRuby 1.9.3 RVMの下で:rvm install 1.9.3 --with-gcc=clang-これにより、「サポートされていないオプション '--with-libyaml'」というエラーが発生しますが、これによる悪影響はまだ確認されていません。
  • 新しいRubyに切り替えます:rvm use 1.9.3
  • すべてのRuby-debug * gemを一覧表示して削除します:gem list | grep debug --gem uninstall <found gems>
  • http://rubyforge.org/frs/?group_id=888 からlinecache19をダウンロードし、gemをインストールします。例:gem install linecache19-0.5.13.gem
  • RubyMineを起動し、デバッガーを実行します。不足しているデバッグgem(Ruby-debug-ideなど)について通知します。 RubyMineにそれらをインストールさせてください。

デバッガーが動作を開始したのはそのときです。このRubyMineサポートディスカッションも参照してください: http://devnet.jetbrains.com/message/5443846#5443846

3
shadowbrush

デバッガーに問題がありました。 Railsをインストールし、構成オプションのパスをRailsインストールでRuby.exeに設定すると、すべてが正常に機能します。

0

ついに今日、巨大な応急修理ハックでこれを機能させました。それをしたステップは

  1. Sudo chmod -R 777 ~/.rvm

  2. RubyMineに任せましょう

また、rake以外に持っていたすべてのgemをアンインストールするようにしました。 reby-debug-ideRuby-debug-base19xlinecache19Ruby_core_sourcearchive-tar-minitar、およびcolumnizeが重要だと思います。また、rvmをアンインストールし、clangで再インストールしました。しかし、私は最初にchmodのことをやってみます。 766に変更してみましたが、RubyMineが気に入らなかった。とても巨大なクラッジハックです。 Insecure worldについて多くの警告が表示されますが、少なくともデバッガーは機能しています。 RubyMineの次のバージョンは古い Ruby-debug-base19x を使用せず、代わりに https://github.com/Ruby-debug で最近編集されたgemを使用することを確認してください。 =。だからうまくいけば、素晴らしいJetBrainsの誰かがそれを修正するでしょう。ところで、RubyMineをSudo mineで実行しようとしましたが、それでもうまくいきませんでした。

0
crizCraig