2016-09-19 6 views
0

私はByebugを使って自分のレールアプリケーションをデバッグしています。現在私はstepを使用してプログラムの実行時にトレースしています。私はではありませんは、サードパーティのライブラリのすべての行を介して実行をトレースすることに興味があります、私は私のコードアプリケーションをステップしたいです。ルールに基づいてByebugを使って自動的にステップスルーする

例(レールを使用して、それがレールである必要はありません):

私は私のコントローラのいずれかにbyebugを入れた後、以下のファイルを持ってステップ:

  1. /.../app/controllers/home_controller.rb
  2. /.../.rvm/gems/[email protected]_4_2_2/gems/devise-3.5.5/lib/devise/controllers/helpers.rb
  3. /.../.rvm/gems/[email protected]_4_2_2/gems/devise-3.5.5/lib/devise/controllers/helpers.rb
  4. /.../.rvm/gems/[email protected]_4_2_2/gems/warden-1.2.4/lib/warden/session_serializer.rb
  5. /.../.rvm/gems/[email protected]_4_2_2/gems/actionpack-4.2.2/lib/action_dispatch/request/session.rb
  6. Many other files here...
  7. /.../app/...some_other_file_in_my_app

私はステップをスキップできるようにしたい2-6コードの次の行にまっすぐに行くだろう。私のコードでstepであるときは、基本的にすべてのサードパーティライブラリをスキップしてください。特定の仕様(ファイルパスに.rvmがあるなど)を満たすファイルを自動的にスキップする方法はありますか?

私はこの質問が見つかりました:byebug, next into application code only

をしかし、それはあなたがに向かっている行番号を知っていることを前提としています。私はbyebugを使用して、コードがどこにあるかを追跡します(クローンされたプロジェクトを探索する)。

答えて

0

このByebugチートシートをチェックアウト:http://fleeblewidget.co.uk/2014/05/byebug-cheatsheet/

あなたがラインのX量をスキップするなどnext Xとして実行制御方法を試すことができます。またはfinish XXフレーム分スキップすることもできます。

これらの実行制御メソッドを使用すると、フレームワークに入りすぎると大量のコードをスキップすることができます。しかし、コードだけを実行するブレークポイントを設定する方法はありません。コンピュータには、フレームワークとその依存関係とは別にコードを伝える方法がありません。

+0

自分のコードとサードパーティのライブラリを知る方法がコンピュータにないことを理解しています。そのため、ファイルのパスに基づいてコードを実行する方法があるのだろうかと思いました。 – NateW

+0

うん、^そこに行く。 – DiegoSalazar

関連する問題