Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | RubyのDebug

概要

RubyのDebug

詳細

RubyRubyのDebugを扱う方法について。

デバッガの起動
ruby -r debug target.rb

target.rbがデバッグ対象のクラス。

基本的なコマンド

詳細なコマンドについては参照部にて確認。

Command Omission Contents
break b ブレイクポイントの設定。引数で行数指定。引数なしで全ブレイクポイントの確認
watch wat 任意の条件で停止するための条件を指定
delete del ブレイクポイントの削除
display disp 処理停止ごとに確認したいディスプレイ式の設定。引数なしで全ディスプレイ式の確認
undisplay undisp ディスプレイ式の削除
cont c スクリプトが終了するか、ブレイクポイントに到達するまで処理を続行
step s 1行ずつのステップ実行(メソッド内も実行)
next n 1行ずつのステップ実行(メソッド内は非実行)
where(frame) w(f) 現在位置を表示
list l 現在の行の前後指定数分の行を表示
up -- 上位のフレームに移動
down -- 下位のフレームに移動
finish fin 外側のフレームに上がるまで処理を実行
trace[(on|off)][all] tr トレースモードの切り替え
quit q スクリプトの終了
var global var g グローバル変数の確認
var local var l ローカル変数の確認
p -- Rubyの式の結果を表示
help h デバッグコマンドのヘルプを表示する

サンプルコード

def print_count(cnt, sufix)
  cnt *= cnt
  puts "#{cnt}#{sufix},"
end

10.times do |cnt|
  print_count cnt,"=#{cnt}^2"
end