2012-01-25 2 views
8

Pow와 함께 ruby-debug를 사용하려고합니다. Rails 3 앱.Pow - breakpoint가있는 ruby-debug는 절대 실행되지 않습니다.

내가 여기있는 모든 짓을 : 나는 서버와 컴퓨터를 여러 번 다시 시작했습니다 https://gist.github.com/1098830

합니다. 연결을 위해 rdebug를 얻을 수 있습니다 :

→ rdebug -c 
Connected. 

그러나 절대로 중단 점에서 멈추지 않습니다.

어떤 일이 벌어 질 수 있는지 알고 싶습니다. 나는 몇 시간 전에 몇 가지 breakpoints를 치게되었다.

컨트롤러

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 
+0

pow 없이도 작동합니까? 어떤 버전의 루비를 사용하고 있습니까? –

+0

예, 그것은 webrick 및 승객에서 작동합니다. ruby 1.9.2p290 – 99miles

답변

2

업데이트 9월 '12

I debugger gem으로 바 꾸었습니다 - ruby ​​1.9.2/3에 대한 지원이 더 좋은 ruby-debug19의 포크

이렇게하면 development.rb에서 원격 디버깅을위한 구성을 단순화 할 수 있습니다. 나는 매번 중단 점을 쳤고 매달린 과정이 없다.

require 'debugger' 
Debugger.start_remote 

원래 대답

wait_connection을 가능하게하십시오 (다시 시작 펑)

require 'ruby-debug' 
Debugger.wait_connection = true 
Debugger.start_remote 
Debugger.settings[:autoeval] = true 
puts "=> Debugger enabled" 

다시로드 소스도 좋은이 발생 Debugger.settings[:reload_source_on_change] = true

+2

"Debugger.wait_connection = true"는 프로세스를 중단하므로주의하십시오. – PeppyHeppy

+0

사실, 일부 요청은 "영원히"(즉, 10-15 초) 소요되지만 적어도 매번 디버거를 친다는 트릭을 한 것으로 나타났습니다. 어쨌든 * .dev URI를 가리키는 콜백에 코드가있을 때만 사용할 수 있기 때문에 여전히 괜찮습니다. – jayeff

8

이 탕이 두 가지를 실행하기 때문에 작업자 proc esses를 기본값으로 사용하고 rdebug는 그 중 하나에 연결 만합니다. 다른 프로세스가 요청을 처리하면 주사위가 없습니다.

  1. 편집 ~/.powconfig는 이제해야 포로 과정

을 죽이는 export POW_WORKERS=1

  • 다시 시작 탕 자체를 포함하도록 다음과 같이이 솔루션은 하나의 작업자 프로세스를 실행하는 데 탕을 강제하는 것입니다 모든 요청에 ​​브레이크 포인트를 치십시오.

  • 관련 문제