Ruby1.9.3-p194と、Rails3.2.3でのデバッグについて。
Ruby on Railsでruby-debugを使ってデバッグしよう
##デバッグモードの開始
$ rails s --debugger
デバッグモードには、ruby-debugが必須となります。
ruby-debugのインストール
Ruby 1.9.xでは、ruby-debug19の方を使うので、ruby-debug19をインストールしてください。
$ gem install ruby-debug19
Gemfileには以下のように追記します。
Gemfile
gem 'ruby-debug19', :require => 'ruby-debug'
Ruby1.9.3-p194ではエラーになる
$ rails s --debugger
/home/is0me/.rvm/gems/ruby-1.9.3-p194/gems/ruby-debug-base19-0.11.25/lib/ruby-debug-base.rb:1:in `require': /home/is0me/.rvm/gems/ruby-1.9.3-p194/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_threadptr_data_type - /home/is0me/.rvm/gems/ruby-1.9.3-p194/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.so (LoadError)
2012年8月22日時点で、ruby-debug19がまだ1.9.3-p194に対応していませんでした。
Can't install ruby-debug-base19x gem
RubyForgeから最新版のlinecache19と、ruby-debug-base19をダウンロードしてきます。
インストール後はダウンロードしたファイルを消してOK。
curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
curl -OL http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
インストール時は、Rubyのビルドソースを指定します。
rvmの場合
gem install linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$rvm_path/src/ruby-1.9.3-p194/
rbenvの場合
gem install linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rbenv/versions/1.9.3-p194/include/ruby-1.9.1/ruby-1.9.3-p194
ruby-debugが通るか確認
$ irb
1.9.3p194 :001 > require 'ruby-debug'
=> true