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.rb15 行目にブレークポイントを設定する。

> 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

参考:

Breakpoints – deivid-rodriguez/pry-byebug: Step-by-step debugging and stack navigation in Pry – GitHub

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

参考:

Matching Byebug Behaviour – deivid-rodriguez/pry-byebug: Step-by-step debugging and stack navigation in Pry – GitHub

プログラム内でブレークポイントを設定する

プログラム内で任意のメソッドにブレークポイントを設定する。(※ 可能な限り 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"
)

参考:

Breakpoints.add_method – pry-byebug/breakpoints.rb at 0a9f85fdb1f8a3554169194fe1c5cdcdc49bd490 · deivid-rodriguez/pry-byebug – GitHub

PryProcessor.start – pry-byebug/pry_processor.rb at 0a9f85fdb1f8a3554169194fe1c5cdcdc49bd490 · deivid-rodriguez/pry-byebug – GitHub

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

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA