Ruby 1.9でのデバッグ


90

ruby 1.9のデバッグに何を使用していますか?rdebugは互換性がないようです。何かありますか?


10
最初の答えは無視してください。ruby-debug19今は時代遅れです。
Rob Howard

回答:


50

注:この答えは正しかったが、現在は古くなっている。以下の正解をご覧ください。TL; DR: 'debugger'を使用してください。

ruby-debugがRuby 1.9.xで利用可能になりました。http://www.github.com/mark-moseleyを参照してください

インストールするには(1.9 Rubyインストールでgemを使用):

gem install ruby-debug19

(おそらく必要な 'sudo'がその前にあります)。


大ざっぱな試みをしましたが、うまくいきませんでした。これを見るにはもう少し時間が必要です。
マークモーズリー

ruby-debug-ideは現在機能しています-cloud.github.com/downloads/mark-moseley/ruby-debug/…で
Mark Moseley

これは素晴らしいニュースです!ありがとうございました!
アンディ

いい仕事です:)しかし、ファジェム(1.8と1.9の両方のルビーデバッグバージョンを含む)を作成して、ルビーデバグ19を実行することを覚えておく必要はありませんか?:)
horseyguy

4
時間の経過が今それを間違った答えにしたからといって、これに反対票を投じることは公平ではないようです。SOは、このようなユースケースを処理する何らかの方法を必要とします。これにより、誰にとっても役に立たない古い回答の作成者にペナルティを課すことなく、新しい正しい回答が最初にリストされるようになります。
iconoclast 2012

167

ruby-debug19もうメンテナンスされていません。他のすべての回答は古くなっています。

しかし、代替案があります:

debugger 救助へ!

これをあなたの中に入れてくださいGemfile

gem 'debugger', group: [:development, :test]

うまくいきます。-そして、3.2.something from replace以来、rails Gemfileに含まれていますruby-debug19。まったく同じ機能を持ち、積極的にメンテナンスされています。


1
うまく動作します。ruby-debugを手動でインストールするよりもはるかに優れています。ありがとう。
manu_v

5
これは本当にトップアンサーとして上に移動する必要があります。
Matt Zukowski

2
はい、本当にこの答えがトップの答えでなければなりません。
Nazar Hussain

そして、これが実際にGemfileのどこにあるのかについて。
リグ

関係ない。group :development do ... endすでにグループが含まれているため、グループブロック内ではなく(好きな場所など)、好きな場所に配置します。
iblue 2012

70

RUBY 2.0+以降のアップデート

byebugはRuby 2.0以降で現在推奨されているデバッガです

この問題はここ記載されており、デバッガーの作者であるcldwalkerは、デバッガーがRuby 1.9.2および1.9.3にスコープされることを指摘しています。

アップデート2

もはやメンテナンスされていない場所が見つからなくても、ruby-debugが積極的にメンテナンスされていないのは事実です。

Ryan Batesのレールのキャストを見ることができる新しいgemから始めるのに助けが必要な場合は、新しいデバッガgemを使用できます。

Gemfileに次のように入力します。

gem 'debugger', group: [:development, :test]

次に、debuggerキーワードを使用して、コード内の任意の場所にブレークポイントを追加できます。

引き続き使用できます

linecache19およびruby-debug-base19:

bash <<(curl -L https://raw.github.com/gist/1333785

古い答え

これについては、rvm、ruby 1.9.1-p378を追加するだけです。本当の話は、ruby-debugが1.9.xに対応している場合でも、linecache-0.43は対応していないということです。解決策はインストールすることです:

gem install ruby-debug19

これで問題が解決しました。

古いアップデート

Ruby 1.9.2とRails 3のデバッグに問題がある場合:

gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"

あなたのGemfileで

bundle install

再び幸せなデバッガになります。


1
おかげで、私にはそれがより適切な答えでした。しかし、おそらくこれは、ほぼ1年後に返信があり、その点で状況が好転したためです。
マーク

3

あなたが試すことができるいくつかのこと

1)rubyの通常のデバッガー-rdebug [1]で低速で実行する

2)unroller gemで実行する[悪臭のようなもの、非常に遅い]

3)大量の印刷ステートメントを高速に使用し、内省性を低下させる

4)irbプロンプトにドロップして、そこからコードを実行します。

自分自身の周りにコードをリストした独自の「drop to irbプロンプト」を作成することによってコードをリストすることができます[呼び出し元を使用してどこにいるのかを発見する]その後、通常のirbプロンプトにドロップします。

5)多分1.9互換モードのjrubyにはデバッガがありますか?

[1] http://beaver.net/rdebug/index-0.html


3

ruby-debug19をインストールしても問題が解決しない場合は、ruby-debug-base19を更新してみてください。エラーが発生し、デバッグするまでWEBrickをデバッグモードで実行できませんでした。

gem update ruby-debug-base19

おお、そしてあなたのすべてのハードワークのためにMoseley氏に感謝します!


2

ここで私の答えを参照してください: Ruby-debugが機能していません-スタックオーバーフロー

Rubyデバッグを次の設定で動作させることです

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3(ビルド3.0.8.201201201658)
  • rvmを使用して、プロジェクトの作業ディレクトリに.rvmrcと書いてあります:

    rvm use ruby-1.9.3-p0@mygemset

これが役に立てば幸いです!

-フレディ


2

私は以下を使用しましたが、うまくいきました:

gem 'debugger'、group:[:development、:test]

ruby 1.9.3p194(2012-04-20リビジョン35410)[x86_64-linux] rails 3.2.8


0

NetbeansはRoRに適したIDEです。良いデバッガも。


1
私が間違っている場合は修正してください。ただし、デバッガがRuby 1.9.1(C実装)で動作するとはまだ思っていません。少なくとも、私はそれを機能させることに成功していません。
JPリチャードソン

0

ruby 1.9.1-p243バージョンが公開され、互換性のあるruby-debug-ideも正常に動作しています。次のコマンドを使用してruby-debug-ideをインストールします。

gem install ruby​​-debug-ide

これにより、ruby-debug-base19およびruby-debug-ide gemがインストールされます。ただし、その前に、RubyForgeから入手できる開発キットのドキュメントに従ってmingwを正常にインストールしてください


0

最新の機能はruby-debug-ide19 gemで利用できます。


0

ニーズに応じて、多くの選択肢があります。

前のコマンドの内部で何が起こったかをデバッグモードでその場から再実行することで「振り返る」ことができるので、私はこじり動作を使用します。


-1

誰も使用しません:ruby -rdebug script.rb

次に、次を使用できます:b script.rb:##(##は有効なrubyコマンドの行番号です)そうでない場合は、rubymemまたは必要なコードのチャンクの真ん中にいる可能性があります。

次に、次のブレークポイントをb:##として設定できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.