2016-08-16 9 views
2

私はpryとpry-byebugを使用して、Railsコンソールでいくつかのコードを実行しています。次に、新しいFooを作り、その上にbarを呼び出すpry-byebugのブレークポイントはコンソールでは起動しません

break Foo#bar

:私は、私はその後、ブレークポイントを設定し

pry -r ./config/environment

でコンソールを開始し

Foo.new.bar

私は期待されるステップがにが、代わりに正常に実行されたメソッドです。

このワークフローを動作させる方法はありますか?ここで

+0

これにラインベースのアプローチを使ってみましたか?ドキュメントから: 'break app/models/user.rb:15'これはもっとはっきりしているようです。 – jaydel

+0

また、pry-byebugセッションの中からこれを行うことができるかどうか、あるいは答えに@kcdragonが示唆するようにコード自体にブレークポイントを設定できるかどうかを明確にすることができます。後者の場合は、彼の答えを受け入れてください。 – jaydel

答えて

2

私は答えを見つけました:デバッガ再入国ではありません。だからあなたはこれを行う必要があります:

[1] pry(main)> binding.pry 
[1] pry(main)> break Foo#bar 
Breakpoint 1: Foo#bar (Enabled) : 

6: def bar 
7: end 

[2] pry(main)> C# continue and exit the debugger we started on the first line 
=> nil 
[3] pry(main)> Foo.new.bar 
Breakpoint 1. First hit. 
1

私は通常、あなたが見るべき方法Foo#bar

実行rails console

コールFoo.new.bar

の最初の行にbinding.pryへの呼び出しを追加PRY-byebug

を使用する方法でありますREPLを今すぐ実行してください

+0

これはうまくいくが、OPはpry-byebugセッションの中からブレークポイントを動的に追加することに興味があるようだ。 – jaydel

+1

彼はそのアプローチをしようとしているようですが、このアプローチについて知っていて、それを使用したくないか、またはそれを動作させるために何か必要があるだけなので、それはわかりません。 – kcdragon

+0

この答えには明らかに価値があります - それは意味がありませんでした。私はOPが彼がこれを動的に行うことができるという要件があるかどうかを明確にすることを望んでいました。 – jaydel

関連する問題