8

我正在尝试将 ruby​​-debug 与 Pow 一起使用。Rails 3 应用程序。

我在这里做了一切: https ://gist.github.com/1098830

我已经多次重新启动服务器和机器。我可以让 rdebug 连接:

→ rdebug -c
Connected.

但它永远不会在断点处停止。

知道会发生什么吗?几个小时前我让它达到了几个断点,从那以后就没有了。

控制器

  def index
    debugger
    ...
  end

宝石文件

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

发展.rb

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

2 回答 2

8

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

  1. 编辑 ~/.powconfig 以包含export POW_WORKERS=1
  2. 通过终止 Pow 进程重新启动 Pow

您现在应该在每个请求上都打断点。

于 2012-03-06T16:52:30.483 回答
2

2012 年 9 月更新

我切换到gem - 一个对 ruby​​ 1.9.2/3 有更好支持debugger的分支ruby-debug19

这也允许在 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

于 2012-01-27T12:05:41.080 回答