2016-09-19 4 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 Cheatsheet: http://fleeblewidget.co.uk/2014/05/byebug-cheatsheet/

Вы можете экспериментировать с методами контроля исполнения, такие как next X пропускаемых X количество строк. Или, может быть, finish X, чтобы пропустить X количество кадров.

С помощью этих методов контроля выполнения вы сможете добиться пропуска большого количества кода при слишком глубоком входе в рамки. Тем не менее, нет способа установить точки останова, что только шаг, но ваш код. Компьютер не может передавать ваш код отдельно от структуры и ее зависимостей.

+0

Я понимаю, что компьютер не знает, что такое мой код и что такое сторонняя библиотека ... Вот почему я подумал, есть ли способ сделать это на основе пути к файлу. – NateW

+0

хорошо,^там вы идете. – DiegoSalazar