2011-11-12 13 views
5

यह निराशा का एक लंबा स्थायी स्रोत है, लेकिन शायद कुछ ऐसा है जो मुझे याद आ रहा है। अगर मैं डिबगिंग के बीच में हूं, और मैं डीबगर से बाहर निकलना चाहता हूं और आईआरबी या रेल कंसोल पर लौटना चाहता हूं, तो "छोड़ें" काम नहीं करेगा क्योंकि यह आईआरबी से बाहर निकल जाएगा। "खत्म" भी जारी रखने के समान प्रभाव प्रतीत होता है। ब्रेकपॉइंट्स को हटाने के लिए "हटाएं" का उपयोग करना और फिर "जारी रखें" या "फिनिश" करने का प्रयास करना काम नहीं करता है।मैं अपने आईआरबी सत्र से बाहर निकले बिना डीबगर से कैसे निकल सकता हूं?

कोई विचार?

उत्तर

2

यह SO question कुछ अच्छे सुझाव हैं। यह विशेष रूप से loops के अंदर डीबगिंग के साथ सौदा करता है। लूप के बाहर ब्रेक पॉइंट सेट करना एक अच्छा समाधान है, फिर आईआरबी से इसे लूप के अंदर सेट करें और जब आप चाहें मैन्युअल रूप से इसे साफ़ करें।

मूल रूप से यह आपके ब्रेकपॉइंट्स को सेट करने के लिए थोड़ा सा विचार डालने के लिए नीचे आता है।

इसके अलावा ऐसा कुछ भी नहीं दिखता है जो आप कर सकते हैं।

2

byebug में कम से कम, आप यह कर सकते हैं:

eval return 

कौन सा वर्तमान समारोह से एक वापसी कथन का मूल्यांकन का शुद्ध प्रभाव पड़ता है। यह कभी-कभी काम करता है, कॉल स्टैक कैसा दिखता है इस पर निर्भर करता है।

अब यह वर्तमान ब्रेकपॉइंट को नहीं हटाता है .... अगर आप केवल नियंत्रण चाहते हैं, तो यह आपके कोड को संरचित करने के तरीके के आधार पर अधिकांश मामलों में ऐसा करेगा।

यह भी जब अपने कोड में एक डिबग प्रविष्टि बनाने यह करने के लिए उपयोगी है:

byebug unless $continue 

तो अगर सब एक डिबगिंग सत्र में विफल रहता है, तो आप हमेशा

$continue = true 
c 

अब इस चला सकते हैं संभावनाओं का एक पूरा सेट खुलता है।

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

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