2012-01-25 14 views
8

हिट नहीं करते हैं, मैं पॉव के साथ रूबी-डीबग का उपयोग करने की कोशिश कर रहा हूं। रेल 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 
+0

क्या यह बिना पाउ के काम करता है? आप किस रूबी का उपयोग कर रहे हैं? –

+0

हां, यह हथियार और यात्री के तहत काम करता है। रूबी 1.9.2p290 – 99miles

उत्तर

2

अद्यतन सितम्बर '12

मैं माणिक 1.9.2/3

यह भी development.rb में रिमोट डीबगिंग के लिए विन्यास को आसान बनाने के लिए अनुमति दी के लिए बेहतर समर्थन के साथ ruby-debug19 का एक कांटा - debugger मणि करने लगे। मैंने हर बार ब्रेकपॉइंट मारा और कोई फांसी प्रक्रिया नहीं है।

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
  2. पाउ पुनः प्रारंभ में ही शामिल करने के लिए पाउ प्रक्रिया

अब आप चाहिए की हत्या करके: इस प्रकार समाधान, एक भी कार्यकर्ता प्रक्रिया को चलाने के पाउ मजबूर करने के लिए है हर अनुरोध पर अपने ब्रेकपॉइंट मारा।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^