Byebugを使う
from Rubyのデバッグ方法を学ぶ
deivid-rodriguez/byebug: Debugging in Ruby 2
table:byebug_command
コマンド 省略形 用途
help <コマンド> h ヘルプを表示する (コマンドの説明と省略形を確認)
continue <行番号> c, cont 処理を続行する (行番号を指定した場合はその行のコードまで)
step <繰り返す回数> s ステップ実行する (ステップイン:メソッドやブロックの内部に入る)
finish fin ステップインした内部の最後まで実行する (ステップアウト)
restart N/A プログラムを最初から実行する
next <繰り返す回数> n ステップインせずに、次のコードに進む (ステップオーバー)
break <行番号> b ブレークポイントを追加する (プログラムで停止する行を設定)
break <行番号> if <条件式> b if 条件を満たす場合にのみ停止するブレークポイントを追加する
info breakpoints i b ブレークポイントの一覧を確認する (IDが振られている)
disable breakpoints <ID> dis b ブレークポイントを無効にする (IDを省略すると全ブレークポイントが対象)
enable breakpoints <ID> en b ブレークポイントを有効にする ( IDを省略すると全ブレークポイントが対象)
delete <ID> del ブレークポイントを削除する (IDを省略すると全ブレークポイントが対象)
list l 停止中の周辺のコードを表示する
quit q Byebugを終了させる (確認あり)
quit unconditionally q! Byebugを終了させる (確認なしで強制終了)
(何も入力せずEnter) N/A 直前のコマンドを繰り返す
(コマンド以外を入力してEnter) N/A Rubyのコードとして実行する
変数名やメソッド名がByebugコマンドとかぶってしまう場合は、evalメソッドを使って値を確認する
Kernel.#eval
byebugコマンドでプログラムを実行できない場合でも、コード中にbyebugを埋め込むことでその位置で停止させることができる (デバッグが終わったら削除すること)
require 'byebug'; byebug
rubyコマンドに-rbyebugオプションを付けると、最初からbyebugがrequireされるので、require 'byebug';を省略できる (byebugのみにできる)
参考URL
printデバッグにさようなら!Ruby初心者のためのByebugチュートリアル - Qiita