8

Pow で ruby​​-debug を使用しようとしています。Rails3 アプリ。

ここですべてを行いました: https://gist.github.com/1098830

サーバーとマシンを数回再起動しました。rdebug を接続することができます:

→ rdebug -c
Connected.

しかし、ブレークポイントで停止することはありません。

何が起こっているのでしょうか?数時間前にいくつかのブレークポイントにヒットしましたが、それ以降ではありません。

コントローラ

  def index
    debugger
    ...
  end

Gemfile

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 がデフォルトで 2 つのワーカー プロセスを実行し、rdebug がそのうちの 1 つにしか接続しないために発生します。他のプロセスが要求を処理する場合、ダイスはありません。解決策は、次のように Pow に単一のワーカー プロセスを強制的に実行させることです。

  1. ~/.powconfig を編集して含むようにしますexport POW_WORKERS=1
  2. Pow プロセスを強制終了して、Pow 自体を再起動します。

これで、すべてのリクエストでブレークポイントにヒットするはずです。

于 2012-03-06T16:52:30.483 に答える
2

2012 年 9 月の更新

ruby 1.9.2/3 のサポートが向上したdebuggergem - a forkに切り替えました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"

reload source もいいです:Debugger.settings[:reload_source_on_change] = true

于 2012-01-27T12:05:41.080 に答える