Автоматически проходить через Byebug на основе правила

Я использую Byebug для отладки своего приложения на рельсах. В настоящее время я использую step для отслеживания выполнения программы. Я не заинтересован в отслеживании выполнения каждой отдельной строки сторонних библиотек, я хочу только пройти через моё кодовое приложение.

Пример (с использованием рельсов, но это не обязательно должны быть рельсы):

Я поместил 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

Я хотел бы иметь возможность пропустить шаги 2-6 и сразу перейти к следующей строке моего кода. По сути, просто пропускайте все сторонние библиотеки, когда я step просматриваю свой код. Есть ли способ автоматически пропускать файлы, отвечающие определенным требованиям (например, наличие .rvm в пути к файлу)?

Я нашел этот вопрос: byebug, далее только код приложения

Но это предполагает, что вы знаете номер строки, к которой направляетесь. Я использую byebug, чтобы отслеживать, куда идет код (исследуя клонированный проект).


person NateW    schedule 19.09.2016    source источник


Ответы (1)


Посмотрите эту памятку Byebug: http://fleeblewidget.co.uk/2014/05/byebug-cheatsheet/

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

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

person DiegoSalazar    schedule 19.09.2016
comment
Я понимаю, что у компьютера нет возможности узнать, что такое мой код, а что сторонняя библиотека... Вот почему я задался вопросом, есть ли способ сделать это на основе пути к файлу. - person NateW; 19.09.2016
comment
ну ^ ну вот. - person DiegoSalazar; 19.09.2016