ruby-debug with Pow - 断点从未命中

时间:2012-01-25 00:45:31

标签: ruby-on-rails ruby-on-rails-3 ruby-debug rack-pow

我正在尝试使用ruby-debug和Pow。 Rails 3 app。

我在这里做了一切: 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 个答案:

答案 0 :(得分:8)

这是因为Pow默认运行两个工作进程,而rdebug只连接其中一个进程。如果其他进程提供请求,则没有骰子。解决方案是强制Pow运行单个工作进程,如下所示:

  1. 编辑〜/ .powconfig以包含export POW_WORKERS=1
  2. 通过终止Pow进程重新启动Pow本身
  3. 现在,您应该在每次请求时点击断点。

答案 1 :(得分:2)

9月12日更新

我切换到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