2012-07-26 22 views
17

質問の長さについて私のお詫びをしていますが、私は愚かな間違いをしていません!Ruby 1.9.3を使用してRubyMine 4.5でデバッグできません

次のように、私はRubyの1.9.3を使用してルビーマイン4.5で働いてデバッグを得るのに苦労しています、私の手順は次のとおりです。

新鮮な(すなわち、すべての以前のルビーや宝石のディレクトリーを除去した)のRuby 1.9.3のインストール、Ruby Gems、DevKitとRails(以下、this guide) - うまく動作します。

私はチームのルビーコードの作業を開始しようとしています。 RubyMineでディレクトリを開き(最初に.ideaディレクトリを削除しておいてください)、要求通りに(コンソールから)bundle installを実行するように求められます。これで正常に完了しました。 RubyMineを再起動します。

私は、Rubyが動作していることを確認: - :

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

私はキャンセルをクリックしてチェックツール> IRBコンソール>puts "test"#test => nilは、私は今、デバッガ(+ F9SHIFT)を試してみて、メッセージを参照してください 作品私の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' 

が見えます。しかし、hereを読むと、debuggerで十分ではないようです。私はruby-debug-base19xをインストールする必要があります。だから、SO以下、私はGemfileからデバッガをコメントアウトし、

細かい実行
gem install ruby-debug-base19x --pre 
gem install ruby-debug-ide --pre 

を実行するので、私は私のGemfileに

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

を追加し、コンソールからbundle installを実行します。

最後に、RubyMine(SHIFT + F9)内でデバッガを開きます。そしてputs "test" #test => nilが再び動作します。だから私は、ブレークポイントを作成するために私のスクリプトの側溝でダブルクリックしてみてください、ルビーマインは、第二のために一時停止し、その後、私は得る:

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に関連すると思われる - 何が起こっているのか?

何か助けていただきありがとうございます - これは私を怒らせています!

+0

この問題を再現するためのサンプルプロジェクトをご用意ください。 – CrazyCoder

+0

応答をありがとう、しかし私はあなたが私に何を提供したいのか分からないのですか?私はあなたに私のフルGemfile、Gemfile.lockを与えたり、Ruby ENVをプリントアウトしたりできますか? – rwb

+0

Zipを開き、サンプルスクリプト、RubyMineプロジェクト( '.idea'ディレクトリ)とディレクトリを共有します。このディレクトリには、ブレークポイントが設定されている場所、' Gemfile'、 'Gemfile.lock'が表示されます。 – CrazyCoder

答えて

17

更新日:RubyMine 6+はデバッガgemをサポートしています。

からgem 'debugger'を必ず削除してください。これは、RubyMineからのデバッグを中断する既知の競合です。あなたの質問にリンクされている私のanother answerに明記されているように、デバッガに関連する2つの宝石だけが必要です。

宝石を取り除いたら、それがプロジェクトのどこにも参照されていないようにする必要があります。この特定のケースでは、rails consoleを実行しようとするとcannot load such file -- ruby-debugというエラーが発生するr_spec_runner.rbの文はrequire 'ruby-debug'となりました。

+0

私は行っています。私はgemのデバッガをコメントアウトし、2つのデバッグ・宝石をインストールしてからgemfileに追加して最後にバンドル・アップデートを行います – rwb

+2

RubyMine 4.5では 'debugger' gem関連のコードを次のように無効にできます:' gem "debugger" "RM_INFO"] '。 – CrazyCoder

+1

この回答に続いても問題が解決しない場合は、Mac OSXをお使いの場合は、「システム環境設定」|共有。これは私を永遠に理解するのにもかかった。詳細はこちらhttp://youtrack.jetbrains.com/issue/RUBY-8990 –

3

私は同じ問題を抱えていました。ここでは、最終的に行くデバッガ(これはRVMを使っている)得たものである:

  • がルビーマイン終了を
  • のRuby 1.9.3がインストールされている場合は、それをアンインストール:rvm remove 1.9.3
  • はRVMの下でのRuby 1.9.3をインストールします。rvm install 1.9.3 --with-gcc=clang * rvm use 1.9.3
  • リストおよびすべてのルビーのデバッグを削除します - これは、「『--with-libyaml』サポートされていないオプション」エラーを生成しますが、私は新しいルビーのこのまだ
  • スイッチからの任意の悪影響を見ていません宝石類:gem list | grep debug - gem uninstall <found gems>
  • linecache19をhttp://rubyforge.org/frs/?group_id=8883からダウンロードし、宝石、つまりgem install linecache19-0.5.13.gem
  • Lauch RubyMineをインストールし、デバッガを実行します。 (つまり、ruby-debug-ide)が不足していることを通知します。 RubyMineにそれらをインストールさせてください。

これは、デバッガが動作を開始したときです。このルビーマインのサポート議論も参照:http://devnet.jetbrains.com/message/5443846#5443846

+1

もう0.5.13をダウンロードできないようです。ページの読み込みがタイムアウトします。デバッガが動作していない状態でRMがどのように出荷されているのか分かりません。 – Jason

+0

'git clone [email protected]:robmathews/linecache19-0.5.13'の後に' gem build gem build linecache19-0.5.13.gemspec'を実行しました。あなたが私を信じているなら、ここにファイルがあります:) https://dl.dropbox .com/u/9632169/linecache19-0.5.13.gem – crizCraig

+0

RubyMine 5には何の問題もありませんでした。必要な宝石をインストールした後、すぐに使えるようです。 – shadowbrush

9

この問題を逃れるために、私は私のGemfileにこのラインを持っている:
gem 'debugger' unless ENV["RM_INFO"]

+0

AFAIKこれはGemfile.lockに影響しないので、RubyMineを使用している人はまだボークになります – orbiteleven

+2

[これはうまくいくはずです](http://youtrack.jetbrains.com/issue/RUBY-11800#comment=27-417333)。 – CrazyCoder

0

は最後に巨大なその場しのぎのハックで、今日、この作業を得ました。私がやったステップは、それが

  1. sudo chmod -R 777 ~/.rvm

  2. 私も、私はほかrake持っていたすべての宝石をアンインストールすることを確認しました

ルビーマインはその事をやってみましょう

だったと思います。私は、 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になります。だからうまくいけば、すばらしいJetBrainsの誰かがそれを修正します。 Btwも sudo mineでRubyMineを実行しようとしましたが、それでもやっていませんでした。

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が変わらないことを確認しますと、 vi/sublime/RubyMine環境で宝石を必要としないことで、楽しく働くことができるもの。

0

私はデバッガにいくつか問題がありました。 私はRailsをインストールし、設定オプションのパスをレールインストールのruby.exeに設定して、すべてが完璧に動作しています。

+0

答えよりも多くのコメント。 Plsはこれをコメントにすることを検討します。 –

関連する問題