debug

http://rusrails.ru/debugging-rails-applications

-Rails.logger.info «H1ello world! #{@version.title}»
- byebug

help list

чтобы просмотреть предыдущие десять строчек, следует написать list- (or l-)

В любое время можете вызвать команду backtrace (или ее псевдоним where), чтобы напечатать трассировку приложения

команду frame _n_, где n это номер определенного фрейма

instance_variables

instance_variables.include? «@articles»

(byebug) help var
v[ar] cl[ass]                   show class variables of self
v[ar] const <object>            show constants of object
v[ar] g[lobal]                  show global variables
v[ar] i[nstance] <object>       show instance variables of object
v[ar] l[ocal]                   show local variables

 var instance Article.new

display @articles

 Чтобы остановить отображение переменной, используйте undisplay _n_, где n это номер переменной (1 в последнем примере)

Используйте step (сокращенно s) для продолжения запуска вашей программы до следующей логической точки останова и возврата контроля debugger.

Также можете использовать next, которая похожа на step, но вызовы функции или метода, выполняемые в строке кода, выполняются без остановки.

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

Можете добавлять точки останова динамически с помощью команды break (или просто b). Имеются 3 возможных способа ручного добавления точек останова:

  • break line: устанавливает точку останова в строчке номер line в текущем файле исходника.
  • break file:line [if expression]: устанавливает точку останова в строчке номер line в файле file. Если задано выражение expression, оно должно быть вычислено в true, чтобы запустить отладчик.
  • break class(.|\#)method [if expression]: устанавливает точку останова в методе method (. # для метода класса и экземпляра соответственно), определенного в классе class. Выражение expression работает так же, как и с file:line.
  • Используйте info breakpoints _n_ или info break _n_ для отображения перечня точек останова
  • Чтобы удалить точки останова: используйте команду delete _n_ для устранения точки останова номер n.

Также можно включить или отключить точки останова:

  • enable breakpoints: позволяет перечню breakpoints или всем им, если перечень не определен, останавливать вашу программу. Это состояние по умолчанию для создаваемых точек останова.
  • disable breakpointsbreakpoints не будут влиять на вашу программу.

Команда catch exception-name (или просто cat exception-name) может использоваться для перехвата исключения типа exception-name

Есть два способа возобновления выполнения приложения, которое было остановлено отладчиком:

  • continue line-specification: возобновляет выполнение программы с адреса, где ваш скрипт был последний раз остановлен; любые точки останова, установленные на этом адресе будут пропущены. Дополнительный аргумент line-specification позволяет вам определить число линий для установки одноразовой точки останова, которая удаляется после того, как эта точка будет достигнута.
  • finish frame-number: выполняет, пока не возвратится выделенный кадр стека. Если номер кадра не задан, приложение будет запущено пока не возвратиться текущий выделенный кадр. Текущий выделенный кадр начинается от самых последних, или с 0, если позиционирование кадров (т.е. up, down или frame) не было выполнено. Если задан номер кадра, будет выполняться, пока не вернется указанный кадр

Две команды позволяют открыть код из отладчика в редакторе:

  • edit [file:line]: редактирует файл file, используя редактор, определенный переменной среды EDITOR. Определенная линия line также может быть задана

Чтобы выйти из отладчика, используйте команду quit (сокращенно q), или ее псевдоним exit

У byebug имеется несколько доступных опций для настройки его поведения:

  • set autoreload: Перезагрузить исходный код при изменении (по умолчанию true).
  • set autolist: Запускать команду list на каждой точке останова (по умолчанию true).
  • set listsize _n_: Установить количество строчек кода для отображения по умолчанию n (по умолчанию 10).
  • set forcestep: Убеждаться, что команды next и step всегда переходят на новую строчку.

Можно просмотреть полный перечень, используя help set. Используйте help set _subcommand_ для изучения определенной команды set.

.byebugrc в домашней директории

список полезных плагинов для отладки:

  • Footnotes: У каждой страницы Rails есть сноска, дающая информацию о запросе и ссылку на исходный код через TextMate.
  • Query Trace: Добавляет трассировку запросов в ваши логи.
  • Query Reviewer: Этот плагин rails не только запускает «EXPLAIN» перед каждым из ваших запросов select в development, но и представляет небольшой DIV в отрендеренном результате каждой страницы со сводкой предупреждений по каждому проанализированному запросу.
  • Exception Notifier: Предоставляет объект рассыльщика и набор шаблонов по умолчанию для отправки уведомлений по email, когда происходят ошибки в приложении в Rails.
  • Better Errors Заменяет стандартную страницу ошибки Rails новой, содержащей больше контекстной информации, такой как исходный код и просмотр переменных.
  • RailsPanel Расширение для Chrome для разработки на Rails, которое подхватывает изменения в development.log. Всю информацию о запросах к приложинеию Rails можно смотреть в браузере, в панели Developer Tools. Предоставляет обзор времени db/rendering/total, списка параметров, отрендеренных вьюх и так далее.