Hatena::ブログ(Diary)

Back yard : yuya_lush’s report このページをアンテナに追加 Twitter

2012-01-21

Ruby1.9.3-p0とRails3.2.0でDebuggerが使えないのを何とかした

2012年1月20日でRuby On Railsさんがめでたく3.2.0リリースとなっております。

そして、公式ページではRuby1.9.3が推奨されているという事態です。

色々と忙しい毎日なのでRails3.1は華麗にスルーしてみたのですが、

そろそろ追いかけないと取り残されそうな気もします。

「逃げちゃダメだ、逃げちゃダメだ。」

どこかで聞き覚えがある台詞ですが、まさにそんな心境。

ということで、真新しい環境を構築してみたのですが、なんとDebuggerさんが使えなくなってます。

これを使ってないという事は、みんなどうやってデバッグしてるの?と問い合わせたいのですが、

今回は意外とスカッと対策がわかったので書いておきます。

が、先にオチを書いておくと暫定です。公式にはこの問題は解決していない様子です。

もしかして、この機能って誰も使ってないの?

なんていう気もしますが、誰かの役に立ついいな。


ruby-debug19をbundle installすると、一緒に入るGemがどうやら1.9.3に対応していないようです。

ということで、

http://rubyforge.org/frs/?group_id=8883

ここから

linecache19-0.5.13.gem

ruby-debug-base19-0.11.26.gem

ダウンロードして、gem installします。

なお、base19の方だけ、以下のようにしてます。

$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/Users/yuya_lush/.rbenv/source/ruby-1.9.3-p0

上記はMacOSXにrbenvを入れ、ruby-1.9.3-p0のソースを置いたパスを指定していますので、適時変更して下さい。

最後にRails3.2で生成したGemfileにて

gem 'ruby-debug19', :require => 'ruby-debug'

gem 'ruby-debug-base19', '0.11.26'

と指定します。最後の行がポイントです。

これを書かないと0.11.25がロードされてしまい、サーバを起動できません。

最後に

rails s --debugger

サーバを起動し、ブレイクしたいところにdebuggerと書けばデバッグし放題です。

注意があります。

0.11.26のコミットコメントを見たところ

「まだ完璧じゃなくて"where"が使えないんだよねー」

と書かれてました。

つまり、debuggerで止っているときに、listとかppとか使って様子を見ると思いますが、whereとコマンドを打つとサーバがエラーで緊急停止してしまいます。ご注意下さい。

ということで、多分そのうち正式な対応がされて、こんなことしなくても良くなると思いますが、全国1億3千万人のruby-debuggerがないと開発できない人のために捧げます。


参考URL

http://blog.wyeworks.com/2011/11/1/ruby-1-9-3-and-ruby-debug

トラックバック - http://d.hatena.ne.jp/yuya_lush/20120121/1327167133
リンク元