段階的なデバッグとスタックナビゲーション機能を追加して、バイバグを使用してこじ開けます。
使用するには、普通にpryを呼び出します。スクリプトやアプリを違った方法で開始する必要はありません。 binding.pry
の後、実行は最初のステートメントで停止します。
def some_method
puts 'Hello World' # Run 'step' in the console to move here
end
binding . pry
some_method # Execution will stop here.
puts 'Goodbye World' # Run 'next' in the console to move here.
MRI 2.4.0以上。
追加
gem 'pry-byebug'
あなたのgemfileに走ってください
bundle install
テストをデバッグするためにそれを使用する予定がある場合は、グローバルまたは内部にGEMを含めるか:test
グループを含めてください!
ブレーク:ブレークポイントを管理します。
ステップ:次の行またはメソッドへのステップ実行。オプションの数値引数を取り、複数回ステップします。
次:同じフレーム内の次の行に踏み越えます。また、複数の行をステップステップするためにオプションの数値引数を取ります。
仕上げ:現在のスタックフレームが戻るまで実行します。
続行:プログラムの実行を続行し、PRYセッションを終了します。
BackTrace:現在のスタックを表示します。 frame
コマンドを使用して左側の番号を使用して、スタックをナビゲートできます。
アップ:スタックフレームを上に移動します。複数のフレームを移動するためにオプションの数値引数を取ります。
ダウン:スタックフレームを下に移動します。複数のフレームを移動するためにオプションの数値引数を取ります。
フレーム:特定のフレームに移動します。引数なしで呼び出されると、現在のフレームが表示されます。
バイバグから、または3.0より前のプライバグバージョンから来ている場合、ステッピングコマンドの「n」、「 ''」、「c」、「f」エイリアスが欠けている可能性があります。これらのエイリアスは、通常、スクラッチ変数名と競合するため、デフォルトで削除されました。しかし、それでもそれらを望むなら、それらを再生じるのは非常に簡単です。〜 ~/.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
また、 Enter
キーを押すだけで、最後のコマンドを繰り返すのも役立つかもしれません(たとえば、 step
またはnext
もの)。それを達成するには、これを~/.pryrc
ファイルに追加します。
# Hit Enter to repeat last command
Pry :: Commands . command /^$/ , "repeat last command" do
pry_instance . run_command Pry . history . to_a . last
end
break
コマンドを使用して、PRYセッションからブレークポイントを直接設定および調整できます。
BREAK:現在のファイルの行番号、ファイルと行番号、またはメソッドから新しいブレークポイントを設定します。オプションの式を渡して、条件付きブレークポイントを作成します。さまざまなフラグを介して既存のブレークポイントを編集します。
例:
break SomeClass #run # Break at the start of `SomeClass#run`.
break Foo #bar if baz? # Break at `Foo#bar` only if `baz?`.
break app / models / user . rb : 15 # Break at line 15 in user.rb.
break 14 # Break at line 14 in the current file.
break -- condition 4 x > 2 # Change condition on breakpoint #4 to 'x > 2'.
break -- condition 3 # Remove the condition on breakpoint #3.
break -- delete 5 # Delete breakpoint #5.
break -- disable - all # Disable all breakpoints.
break # List all breakpoints.
break -- show 2 # Show details about breakpoint #2.
タイプbreak --help
プライセッションからヘルプして、利用可能なすべてのオプションを確認します。
ここでのすべての選択肢は、Pry-byebugと互換性がないことに注意してください。プラットフォームがPry-byebugでサポートされている場合は、Gemfileに存在する場合は、ここに記載されている宝石を削除する必要があります。
Pry-Debugger:MRI 1.9.3以降のルビーのステップバイステップデバッグを提供します。まだそれらを使用していて、アップグレードを支援するためにステップバイステップのデバッガーが必要な場合は、Pry Debuggerが便利です。
prystack_explorer:MRI 1.9.3以降のルビーにスタックナビゲーション機能を提供します。まだそれらを使用しており、アップグレードを支援するためにスタックをナビゲートする必要がある場合は、Prystack_explorerが便利です。
Pry-nav:Jrubyに段階的なデバッグを提供します。
開発の開始を参照してください。
Tideliftを購読して、Pry-byebugが積極的に維持されていることを確認し、同時にオープンソース依存関係のライセンス保証とタイムリーなセキュリティ通知を取得します。
また、Liberapayを通して小さな(または大きな)チップを残して、 pry-byebug
支援することもできます。
Tideliftセキュリティの連絡先を使用して、セキュリティの脆弱性を報告してください。 Tideliftは、修正と開示を調整します。
パッチとバグレポートは大歓迎です。