VS Code
ruby/debug
VS Code integrationがある
機能
step debugging
cheatsheetを見るとわかるように他のRuby debuggerとコマンドに大差ない
frame navigation
Rubyのコード実行ではメソッド呼び出しがフレームとしてスタックされていく
フレームを確認・移動できる
bt
backtrace表示 up
上のフレームに移動(呼び出し元に戻る) down
下のフレームに移動(呼び出し先へ進む) breakpoint
break
( b
) コマンドで任意のタイミングにbreakpointを設定できる 特定の行に到達したとき
b <line>
b <file>:<line>
特定のメソッドが呼ばれたとき
b <class or obj>(.|#)<method>
例外発生したとき
catch <exception class>
binding.b
などでdebugを開始してからの手順はknow actions, unknown actionsに分かれる known actions =
info
でローカル変数を見たり、breakpointを設定したり。これらをまとめて実行できる pre: "cmd"
binding.b(pre: "info ;; foo.bar? ;; break foo.baz")
cmdを実行したあとにbreakpointで止まる
do: "cmd"
cmdを実行したあとにcontinueする
利点
human errorが減る、cmdをエディタで書くので支援が受けられる
デバグ手順・体験を自分以外にシェアできる
参考