Railsでruby-debugを試したら10分で使えた

前々から名前は知っていたけど、なんだか身構えてしまっていて試していなかったもの。
試してみたらすぐに簡単に使えて激しく便利でした。もっと早くやっておいたらよかった。

これでデバッグのときに変数の内容を表示するようなデバッグコードをがんばって埋める必要がなくなりました。

インストール

gemでさっくりと。

gem install ruby-debug

コードにブレークポイントを仕掛ける

require 'ruby-debug'

とライブラリを読み込んで、ブレークポイントを仕掛けたい場所に

debugger

と書くだけ。

def hoge
  i = 1
  debugger
end

みたいなかんじ。

動かす

WEBrickを動かしてアプリをいじっているとブレークポイントを設定した箇所で実行が停止する。
WEBrickを実行したコンソールにプロンプトが出るのでそこでコマンドを打つと現在の変数の状況などを見ることができる。
よく使うコマンドにはアルファベット1文字の短縮名が用意されているので、さくさくとデバッグが進む。

以下はいろいろあるコマンドの一部。

h, help
コマンド一覧の表示
h <command>, help <command>
コマンドのそれぞれに関するヘルプの表示
l, list
コード表示
c, continue
次のブレークポイントまで実行
s, step
ステップ実行
p
変数の値を表示
v l, var local
ローカル変数一覧の表示

よく使うのは「l」とか「c」とか「s」とか「p」とかでしょうか。

ちなみにブレークポイントをいじったらWEBrickを再起動しないといけないので注意。

参考

Ruby On Rails ピチカート街道 – デバッグ初体験02【ruby-debugを使う】 –

次の記事

RSpec on Railsを試してみた。