http://rusrails.ru/debugging-rails-applications
-Rails.logger.info «H1ello world! #{@version.title}»
- byebug
help list
чтобы просмотреть предыдущие десять строчек, следует написать
list-
(orl-
)В любое время можете вызвать команду
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 breakpoints
: breakpoints не будут влиять на вашу программу.Команда
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, списка параметров, отрендеренных вьюх и так далее.