後記: 以下の文章は 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 が両方で動くのでオススメできます。

というわけで、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 さんに感謝。