Я пытаюсь использовать ruby-debug с Pow. Приложение Рельс 3.
Я сделал все здесь: https://gist.github.com/1098830
Я перезапустил сервер и машину несколько раз. Я могу заставить rdebug подключиться:
→ rdebug -c
Connected.
но он никогда не останавливается на точках останова.
Есть идеи, что может происходить? Несколько часов назад я достиг нескольких точек останова, а не с тех пор.
контроллер
def index
debugger
...
end
Gemfile
gem 'ruby-debug19', :require => 'ruby-debug'
разработка.рб
EG::Application.configure do
...
require 'ruby-debug'
Debugger.start_remote
Debugger.settings[:autoeval] = true
puts "=> Debugger enabled"
end
Ответ 1 · рейтинг 8 · kranzky
Это происходит потому, что Pow по умолчанию запускает два рабочих процесса, а rdebug подключается только к одному из них. Если другой процесс обслуживает запрос, то никаких игральных костей. Решение состоит в том, чтобы заставить Pow запустить один рабочий процесс следующим образом:
- Отредактируйте ~/.powconfig, чтобы он содержал
export POW_WORKERS=1
- Перезапустите сам Pow, убив процесс Pow.
Теперь вы должны попадать в точку останова при каждом запросе.
Ответ 2 · рейтинг 2 · jayeff
Обновление от сентября 2012
Я переключился на гем debugger - форк ruby-debug19 с лучшей поддержкой ruby 1.9.2/3.
Это также позволило упростить настройку удаленной отладки в development.rb. Я каждый раз попадаю в точку останова, и у меня нет зависающих процессов.
require 'debugger'
Debugger.start_remote
Исходный ответ
Попробуйте включить wait_connection (и перезапустить pow)
require 'ruby-debug'
Debugger.wait_connection = true
Debugger.start_remote
Debugger.settings[:autoeval] = true
puts "=> Debugger enabled"
Источник перезагрузки тоже хорош: Debugger.settings[:reload_source_on_change] = true