根据规则

时间:2016-09-19 16:56:47

标签: ruby byebug

我正在使用Byebug调试我的rails应用程序。目前我正在使用step来跟踪程序执行时的情况。我对通过每一行第三方库跟踪执行感兴趣,我只想逐步完成我的代码应用程序。

一个例子(使用rails,但它不一定是rails):

我将byebug放入我的一个控制器中,然后单步执行以下文件:

  1. /.../app/controllers/home_controller.rb
  2. /.../.rvm/gems/ruby-2.1.5@rails_4_2_2/gems/devise-3.5.5/lib/devise/controllers/helpers.rb
  3. /.../.rvm/gems/ruby-2.1.5@rails_4_2_2/gems/devise-3.5.5/lib/devise/controllers/helpers.rb
  4. /.../.rvm/gems/ruby-2.1.5@rails_4_2_2/gems/warden-1.2.4/lib/warden/session_serializer.rb
  5. /.../.rvm/gems/ruby-2.1.5@rails_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
  8. 我希望能够跳过步骤2-6并直接转到我的代码的下一行。当我step通过我的代码时,基本上只是跳过所有第三方库。有没有办法自动跳过符合某些规范的文件(例如文件路径中有.rvm)?

    我发现了这个问题:byebug, next into application code only

    但它假设您知道要前往的行号。我正在使用byebug来跟踪代码的去向(探索克隆的项目)。

1 个答案:

答案 0 :(得分:0)

查看此Byebug备忘单:http://fleeblewidget.co.uk/2014/05/byebug-cheatsheet/

您可以尝试使用next X等执行控制方法来跳过X行数量。或者finish X可以跳过X帧数量。

使用这些执行控制方法,当您深入到框架中时,您将能够实现跳过大量代码。但是,没有办法设置仅通过您的代码执行的断点。计算机无法将代码与框架及其依赖关系区分开来。