ruby-debugのちょっとだけ高度な使い方

便利なコマンド

ps

オブジェクトが配列なら、ソートした上でカラム上に並べて見やすくしてくれます。

Using the ps command in ruby-debug

Railsのメソッド一覧をpsしてみた

irb

その場でirbに突入します。後述のautoevalをONにしてればあまり意味はないかも。

Debugger.settingsでオプション設定

require 'ruby-debug'したあとでDebugger.settings[:key]=valueすると各種オプションを設定できます。網羅的なリストはこちら。特に便利なのは以下。

:autoeval

trueにすると、デバッガコマンドが見つからないときは自動的にevalを試してくれます。*** Unknown command: "User.first.name". Try "help".がしばしば出てしまう僕にとっては必須。

ちなみにRailsでは、テストヘルパ(railties/lib/test_help.rb)でautoevalが設定されてます。

:autolist

trueにすると、デバッガに入ったときやステップ実行時などに自動的にlistを実行して周辺コードを表示してくれます。

これもRailsのテストヘルパで設定されてます。

:forcestep

trueにすると、ステップ実行時に必ず別の行へ飛びます。
Rubyは一行で色々書けるので、普通にステップすると同じ行内でステップすることもありますが、このオプションを使えば一行=1ステップになります。

参考:
Debugging with ruby-debug

Categories: Whatnot |Tagged , , | Trackback URL |