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を再起動しないといけないので注意。