Pry-Byebug
参考:
deivid-rodriguez/pry-byebug: Step-by-step debugging and stack navigation in Pry – GitHub
使い方
参考:
Rails デバッグの為に pry を使いこなす | DoRuby
pry-byebug で ruby をデバッグする – Qiita
Ruby / Rails デバッガことはじめ – Qiita
Pry を使って Rails のコンソールをパワーアップ & デバッグをする | Rails Webook
byebug で Ruby スクリプトをコマンドラインデバッグする – Qiita
pry-byebug を使って Rails アプリをデバックする方法 – Qiita
ステップ実行のコマンド
ステップイン (フレームに入る。)
> step
ステップオーバー (今のフレームのままで、次の行まで実行する。)
> next
フレームを抜けるまで実行する。(メソッドを return
する。)
> finish
バックトレースを表示する。
> backtrace
実行を継続する。(次のブレークポイントがあればそこで停止する。)
> continue
Pry を抜けて実行を継続する。(exit-all
)
> !!@
参考:
pry-byebug を使って Rails アプリをステップ実行する | Hack Your Design!
ブレークポイントを設定する
SomeClass#run
にブレークポイントを設定する。
> break SomeClass#run
baz?
が真の場合に Foo#bar
で停止するブレークポイントを設定する。
> break Foo#bar if baz?
user.rb
の 15
行目にブレークポイントを設定する。
> break app/models/user.rb:15
現在のファイルの 14
行目にブレークポイントを設定する。
> break 14
ブレークポイントの条件を変更する。(ブレークポイント 4
の条件を x > 2
に変更する。)
> break --condition 4 x > 2
ブレークポイントの条件を取り除く。(ブレークポイント 3
の条件を取り除く。)
> break --condition 3
番号を指定してブレークポイントを削除する。(ブレークポイント 5
を削除する。)
> break --delete 5
すべてのブレークポイントを無効化する。
> break --disable-all
ブレークポイントの一覧を表示する。
> break
ブレークポイント 2
の詳細を表示する。
> break --show 2
参考:
Add binding.pry breakpoint dynamically with pry-byebug – kinopyo blog
コマンドのエイリアスを設定する
~/.pryrc
ファイルに以下の内容を記述する。
if defined?(PryByebug) Pry.commands.alias_command "c", "continue" Pry.commands.alias_command "s", "step" Pry.commands.alias_command "n", "next" Pry.commands.alias_command "f", "finish" end
参考:
プログラム内でブレークポイントを設定する
プログラム内で任意のメソッドにブレークポイントを設定する。(※ 可能な限り binding.pry
を使ってブレークポイントを設定することが推奨される。Ruby におけるブレークポイント検出方法の制限により Byebug.start
以降はプログラムの実行が遅くなる。)
require "pry-byebug" Byebug.start Byebug::Context.processor = Byebug::PryProcessor Pry.load_rc_files Pry::Byebug::Breakpoints.add_method( "ActionView::Helpers::FormHelper#form_with" )
参考:
Pry.load_rc_files – pry/pry_class.rb at f35957d42fe2eb63d80cbbce917ef304c1267aa7 · pry/pry – GitHub
Method.from_str – pry/method.rb at a189cbe9bab7db759f5b272be54775d4bebbcd13 · pry/pry – GitHub
pry-stack_explorer
pry-stack_explorer とは非互換であり、同時に使用できない。
参考:
Stacktrace is always empty with pry-byebug · Issue #22 · pry/pry-stack_explorer – GitHub