2013-07-04 7 views
18

मैं इस (केवल उदाहरण के रूप में) की तरह जावा कोड है मान लीजिए:Intellij विचार डीबग में लाइन कैसे छोड़ें?

public void someMethod(){ 
    int a = 3; 
    int b = 2; // <-- stay debug here 
    a = b + 2; 
    System.out.prinln(a); 
} 

यह लाइन के निष्पादन को छोड़ने के लिए संभव है "int a = b + 2," और "System.out.prinln (ए);" के लिए immidiatly जाओ?

पीएस मैं इंटेलिज आइडिया का उपयोग करता हूं 12.

+0

"int int = b + 2;" "क्या यह संकलित हो सकता है? – johnchen902

उत्तर

22

डीबगर के साथ कोड के हिस्सों को निष्पादित नहीं करना संभव नहीं है।

हालांकि अतिरिक्त कोड निष्पादित करना और चरों पर मूल्यों को बदलना संभव है, इसलिए यदि आपको डीबग के दौरान निष्पादन से एक पंक्ति को बाहर करने की आवश्यकता है तो आपको उस तरह के डिबगिंग के लिए तैयार करने के लिए अपना कोड बदलना होगा।

public void someMethod() { 
    int a = 3; 
    int b = 2; 
    boolean shouldRun = true; 
    if (shouldRun) { 
     a = b + 2; 
    } 
    System.out.prinln(a); 
} 

फिर आप ब्रेक पॉइंट सेट करेंगे जो निष्पादन को रोक दिए बिना कंधे के मूल्य को बदल देगा। यह इस तरह किया जा सकता है।

enter image description here

ध्यान दें कि

  1. को निलंबित
  2. चेक नहीं किया गया
  3. लॉग का मूल्यांकन अभिव्यक्ति जब तोड़ने बिंदु
+1

वाह यह एक अविश्वसनीय समाधान है।कोड निष्पादन को छोड़ने के लिए कितनी अच्छी चाल है, इसे उत्पादन कोड पर भी रखें। –

+0

क्या आप इस विंडो को आमंत्रित करने के लिए हॉटकी या पथ भी जोड़ सकते हैं? यह स्पष्ट नहीं है कि आपके पास यह –

+0

है, यह चारों ओर घूमता है। 2016.2.5 में मैं उस संवाद में जाने के लिए ctrl + f8 और फिर ctrl + shift + f8 का उपयोग कर रहा हूं। –

3

डीबगिंग करते समय आप 'लाइन निष्पादन' को छोड़ नहीं सकते हैं। आप चरणबद्ध करने के लिए F8 दबा सकते हैं।

0

इंटेलिजे और यहां तक ​​कि ग्रहण में लाइनों के निष्पादन को छोड़ना संभव नहीं है। केवल एक चीज जो आप कर सकते हैं वह है कि आप चरण (एफ 8) कर सकते हैं - जो बिना किसी फ़ंक्शन के के बिना लाइन से लाइन का पता लगाएगा।

एक और बात चरणबद्ध (शिफ्ट + एफ 8) है - जो कि उसी चरण में लाइनों के बीच सीधे निष्पादित करके सीधे डीबग बिंदु पर जाएगी।

+1

नहीं "फिर से शुरू करें कार्यक्रम" (एफ 9) अगले ब्रेकपॉइंट तक जारी रहेगा। चरण आउट वर्तमान विधि को चलाएगा और विधि मौजूद होने पर डीबगर को रोक देगा। –

3

मारा जाता है एक चर को बदलने के लिए प्रयोग किया जाता है यदि आप हॉटस्प्पी का उपयोग करते हैं तो केवल लाइनों को छोड़ना संभव है एनजी या दूसरे शब्दों में कोड रीलोडिंग टूल डालें - रनटाइम पर कोड परिवर्तन/नया कोड जोड़ें। हॉटस्पैपिंग सिस्टम को बंद किए बिना घटकों को बदलने का कार्य है। हॉटस्पैपिंग किसी निष्पादन को बाधित करने की आवश्यकता के बिना किसी प्रोग्राम के चल रहे कोड को बदलने की क्षमता को भी संदर्भित कर सकता है। JRebel (https://zeroturnaround.com/software/jrebel/) या HotSwapAgent (http://www.hotswapagent.org/)

आप कोड में परिवर्तन को फिर से लोड करने के लिए पूरे आवेदन के पुनर्निर्माण के लिए होने से बचने के लिए, यह एक बहुत बड़ा समय की बचत है:

जैसे विभिन्न hotswapping उपकरणों रहे हैं। अपनी पूर्ण निर्माण प्रक्रिया को चलाने के बजाय, बस अपने आईडीई में बनाए गए कंपाइलर का उपयोग करें और हॉटस्पेप एजेंट/टूल कोड को JVM में फिर से लोड करेगा।

इस मामले में यह वास्तव में छोड़ना नहीं होगा लेकिन आप केवल पंक्तियों को टिप्पणी/बदल सकते हैं और इसे पुनः लोड कर सकते हैं। यह उपकरण काफी कमाल है !!!! यह विकास/डीबगिंग प्रक्रिया को बहुत तेज़ी से बढ़ाता है

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