Ruby on Railsでデバッグを行うには

Ruby on Railsデバッグを行う方法の1つにruby-debugを使用する方法があります。ruby-debugは、Ruby on Railsでも使えるデバッガであり、gemコマンドを使ってインストールを行うことができます。

$ sudo gem install ruby-debug

ソースコードブレークポイントを設定するには、config/environments/development.rbにおいて

require 'ruby-debug'

という記述を追加してライブラリを読み込んでおき、任意の場所に

debugger

と記述するだけです。MongrelあるいはWEBrickでアプリケーションを実行している際に、ブレークポイントを設定している箇所で処理が中断されるので、後はruby-debugで用意されているコマンドを使ってデバッグを進めます。

ruby-debugで用意されているコマンドで主に利用するものは下記の通りです。下記以外のコマンドについてはヘルプで確認できます。

help(h):ヘルプの表示
list(l):ソースコードの表示
backtrace(bt):スタックフレームの表示
next(n):ステップオーバー
step(s):ステップイン
finish(fin):ステップアウト
break(b):ブレークポイントの設定
continue(c):次のブレークポイントまで実行
p:引数で指定した変数の値を表示
var local:ローカル変数の一覧と各ローカル変数の値を表示
set autolist:コマンド実行後に自動的にソースコードを表示する設定に

(2010/02/13追記:backtraceコマンドに関する記述を追加しました。)