Intellij में जावा डीबगर का उपयोग करते समय "ड्रॉप फ़्रेम" का क्या अर्थ है?


94

मैं Intellij 8 के भीतर जावा डीबगर का उपयोग कर रहा था और "ड्रॉप फ्रेम" लेबल वाला एक बटन देखा, क्या किसी को पता है कि यह किस उद्देश्य से कार्य करता है? इसका उपयोग कैसे / क्यों / उपयोगी होगा?

जवाबों:


128

आपके एप्लिकेशन का कॉल स्टैक डीबगर में देखा जा सकता है। "ड्रॉप फ़्रेम" कार्यक्षमता का उपयोग करके आप समय में वापस जा रहे अर्थों में, पिछले स्टैक फ्रेम में वापस गिर सकते हैं। यह एक फ़ंक्शन को फिर से दर्ज करने के लिए सहायक हो सकता है यदि आप एक महत्वपूर्ण स्थान चूक गए हैं जिसे आप फिर से देखना चाहते हैं।

जैसा कि नाम "स्टैक फ़्रेम" से पता चलता है, परिवर्तन जो पहले से ही वैश्विक स्थिति में किए गए थे (जैसे स्थिर चर, फ़ील्ड मान और इस तरह के परिवर्तन) पूर्ववत नहीं होंगे, केवल स्थानीय चर रीसेट किए जाते हैं। यह मूल रूप से आपके ब्रेक पॉइंट की ओर ले जाने वाले की तुलना में एक अलग निष्पादन पथ को जन्म दे सकता है। आपको इसके बारे में पता होना चाहिए - मैं अक्सर इसे एप्लिकेशन को पुनः आरंभ करने या किसी विशेष लंबी प्रक्रिया के बिना निष्पादन के विभिन्न रास्तों का पता लगाने के लिए एक उपयोगी सुविधा मानता हूं जो वर्तमान स्टैक की ओर ले जाता है। डिबगर के माध्यम से उपलब्ध चर मूल्यों के परिवर्तन के साथ संयुक्त, आप सभी प्रकार की दिलचस्प चीजें कर सकते हैं।

कृपया ध्यान दें, कि कोई भी दुष्प्रभाव जो हो सकता है - जैसे नेटवर्क ट्रैफ़िक, फ़ाइल हेरफेर, कंसोल आउटपुट आदि - फिर से जारी नहीं किए जा सकते हैं।


14

डीबगर के भीतर ड्रॉप फ़्रेम वर्तमान स्टैक फ़्रेम को पॉप करता है और कॉलिंग विधि को वापस नियंत्रित करता है, किसी भी स्थानीय चर को रीसेट करता है। किसी फ़ंक्शन के माध्यम से बार-बार कदम रखने के लिए यह बहुत उपयोगी है, लेकिन चेतावनी दी जानी चाहिए: फ़ील्ड म्यूटेशन या वैश्विक राज्य परिवर्तन बने रहेंगे।

अधिक जानकारी यहाँ देखें ।


7

डीबगर का उपयोग करके स्टैक से फ्रेम को छोड़ना अनिवार्य रूप से आपको पिछले एप्लिकेशन तक पहुंचने के लिए आपके एप्लिकेशन के निष्पादन को "रिवाइंड" करता है। स्टैक फ्रेम के बाहर चर वापस नहीं किए जाते हैं।

एक साइड नोट के रूप में, मेरा मानना ​​है कि इस फीचर को एक्लिप्स में "ड्रॉप टू फ्रेम" कहा जाता है , लेकिन यह उसी उद्देश्य को पूरा करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.