Ruby on Rails: отладка задач rake
когда я пишу debugger
он не запускается:
NoMethodError: undefined method `run_init_script' for Debugger:Module
from /usr/local/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3/lib/ruby-debug-base.rb:239:in `debugger'
from (irb):4
Если я rake my:task --debugger
, он немедленно возвращает меня в консоль. Как можно отлаживать задачи rake?
6 ответов
ответ Андрея Кузнецова не сработал для меня, используя Ruby 1.9.3. Драгоценный камень ruby-debug, похоже, не поддерживает Ruby 1.9. Мне пришлось использовать отладчик gem:https://github.com/cldwalker/debugger.
- добавить
gem 'debugger'
в группу разработки моего Gemfile. - Run
bundle
. - добавить
require 'debugger'
к вершине моей задачи рейка. - добавить вызов
debugger
где я хотел точку останова в моей задаче рейка. - запустить грабли задача обычно из командной строки, например:
rake my:task
.
Я нашел решение.
$ gem install ruby-debug
$ ruby-debug rake my:task
или на некоторых системах
$ rdebug rake my:task
этот подход не работает для меня. Я просто добавил Это в мой код:
require 'ruby-debug'
# ... code ...
debugger
Код Visual Studio хороший отладчик, встроенный. Если кто-нибудь найдет этот поиск способа заставить его работать с rake, вот рабочая конфигурация:
{
"name": "Debug a rake task",
"type": "Ruby",
"request": "launch",
"useBundler": true,
"cwd": "${workspaceRoot}",
"program": "/usr/local/bin/rake",
"args": ["all"]
}
это будет запускать задачу rake all
. Возможно, вам придется изменить путь к рейку, я не нашел способ запустить тот, что в пути.