後記: 以下の文章は ruby 1.9 時代の古い文章です。ruby 2.0 でのデバッガとしては byebug https://github.com/deivid-rodriguez/byebug がオススメです(そもそも debugger gem が ruby 2.0 では動きません)。ruby 1.9, 2.0 両方で動かしたい場合は機能的には劣りますが pry-nav が両方で動くのでオススメできます。
ブログ書いたー / RubyistならデバッグにはPryのbinding.pryがおすすめ lb.to/T1aA9b
— ささたつ(Tatsuya Sasaki)さん (@sasata299) 9月 19, 2012
@sonots ほんとだ!知らなかった。情報ありがとうございます!
— ささたつ(Tatsuya Sasaki)さん (@sasata299) 9月 19, 2012
というわけで、pry-nav よりも pry-debugger がオススメです。私も今日オフィシャルのREADMEを読むまで、オワコンになっていることに気付かず pry-nav を使っていました。
pry-nav オワコン、ということで今後は pry-debugger を使いましょう。使い方は pry-nav と全く同じで、
next step continue
が使えるのに加え、
finish break breakpoints
が使えるようになっています。finish でステップアウトできたり、break でブレークポイントを貼れるのはイイですね!
pry-debugger よりも debugger!?
ただし、pry-debugger には機能制限があって、pry から debugger の機能を使おうとすると、debugger の本来持つ42個のコマンドのうち、break, breakpoints, continue, finish, next, step の6個のコマンドしか使えなくなってしまいます。
参考:debugger が持つ42個のコマンド
backtrace delete enable help list ps save step var break disable eval info method putl set thread where catch display exit irb next quit show trace condition down finish jump p reload skip undisplay continue edit frame kill pp restart source up
なので、特別 pry の機能を使う必要がなければ、現状では debugger を直接使うことをオススメします。
condition でブレークポイント条件を作れるとか、up で呼び出し元を掘っていったりできるのイイですね!
早く pry-debugger が debugger の全機能に対応してくれないかなぁ。
debugger の使い方
ruby-debug → 1.9.x で動かねー! → ruby-debug19 → メンテナンスされなくなってインストールで失敗する!→ pry かわいいよ pry
という流れで、pry をデバグに使っている Rubyist の方には蛇足以外の何者でもないと思いますが、debugger の使い方にはついては Rails Guide の Ruby on Rails Guides: Debugging Rails Applications にも載っているので、そちらを見てみましょう! ruby-debug と使い方は同じなので、ruby-debug でぐぐっても参考になるんじゃないかな。
調べるきっかけをくださった @sasata299 さんと、いろいろ教えてくださった @udzura さんに感謝。