ruby-debug ってのをちょこっと使ってみました。
結構お手軽で便利かもしれません。
ていうか、デバッグツールとしては rails の breakpointer みたいなのでとりあえず十分なんだけど、あれって rails 以外で単体で使ったりできないのでしょうか。
ま、ruby-debug を使えば似たようなことできるのでいいんですけど。
インストールと起動
以下のような感じでインストール。
gem install -y ruby-debug
そしたら以下のようなコードを書いて実行してみてください。
require 'rubygems' require 'ruby-debug' a = "hoge" debugger # デバッガ起動 puts a a = "hage" puts a
すると debugger って書いてあるところで止まります。
このときプロンプトにこんなのが表示されると思います。
(rdb:1)
この状態でいろいろデバッガのコマンドを実行することができます。
とりあえず「help」コマンドを実行してみてください。
なんかいろいろ表示されると思います。
例えば、「p」コマンドで変数の内容を出力したり、「list」コマンド でソースを表示させたりできます。
あと、まだ実験段階らしいのですが、「irb」コマンドで irb のセッションを開始したりできるようです。
irb の方が(僕が)慣れているのでいいですよね。
参考: Ruby On Rails ピチカート街道 – デバッグ初体験03【ruby-debug v0.9.3 マニュアルお気楽翻訳】 -
デバッガの起動方法として、rdebug コマンドと使うというやりかたもあります。
ruby コマンドの代わりに rdebug コマンドでプログラムを実行します。
こんな感じ。
rdebug debug_test.rb
ruby-debug の利点
ていうか、ruby にはもともと標準のデバッガがあるわけですが、それと比べた場合の ruby-debug の利点って何なんですかね。
挙げるとしたら以下の点ですかね。
- debugger メソッドにより、breakpointer みたく任意の場所でデバッガを起動できる
- irb セッションを起動できる
1 に関しては、プログラムに「require ‘ruby-debug’」ってのを書かないといけないという煩わしさがあります。
あと、まあ、まだ使い方を調べただけで実際にそんなに使い倒してないので正直なんとも言えませんが、なんかこう、デバッガって言うと取っ付きにくいイメージが(僕の中では)ありますが、ruby-debug は(僕の中では)比較的取っ付きやすい気が(なんとなく)します。
これも参考になるかもしれません。
Local Insanity » Ruby Debug Basics [screencast]
ruby-debug の基本的な使い方のスクリーンキャストです。
