ruby-debug с Pow - точки останова никогда не достигают - PullRequest
8 голосов
/ 25 января 2012

Я пытаюсь использовать ruby-debug с Pow. Приложение Rails 3

Я все сделал здесь: https://gist.github.com/1098830

Я перезагружал сервер и компьютер несколько раз. Я могу получить rdebug для подключения:

→ rdebug -c
Connected.

но оно никогда не останавливается на точках останова.

Есть идеи, что может происходить? Я получил его, чтобы достичь нескольких контрольных точек несколько часов назад, а не с тех пор.

Контроллер

  def index
    debugger
    ...
  end

Gemfile

gem 'ruby-debug19', :require => 'ruby-debug'

development.rb

EG::Application.configure do
  ...
  require 'ruby-debug'
  Debugger.start_remote
  Debugger.settings[:autoeval] = true
  puts "=> Debugger enabled"
end

Ответы [ 2 ]

8 голосов
/ 06 марта 2012

Это происходит потому, что по умолчанию Pow запускает два рабочих процесса, а rdebug подключается только к одному из них.Если другой процесс обслуживает запрос, то нет кубика.Решение состоит в том, чтобы заставить Pow запустить один рабочий процесс следующим образом:

  1. Изменить ~ / .powconfig так, чтобы он содержал export POW_WORKERS=1
  2. Перезапустите сам Pow, убив процесс Pow

Теперь вы должны нажимать на точку останова при каждом запросе.

2 голосов
/ 27 января 2012

Обновление сентября '12

Я перешел на камень debugger - вилку ruby-debug19 с лучшей поддержкой рубина 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

...