डिबगिंग रन समय में आपके कोड में ऑब्जेक्ट्स और वेरिएबल्स की स्थिति का निरीक्षण करने के लिए एक बहुत ही उपयोगी उपकरण है।
जैसा कि पहले ऊपर दिए गए जवाबों में बताया गया है, डिबगिंग बेहद मददगार है, लेकिन कुछ मामले ऐसे हैं जहां यह सीमित है।
मेरे अनुभव में, मुझे डिबगर का उपयोग करना बहुत उपयोगी लगता है क्योंकि यह झूठी मान्यताओं को प्रकट करने में मदद करता है जो मैं अपने कोड की स्थिति के बारे में बना रहा था। कुछ लोग बग ढूंढने के लिए कोड के माध्यम से पढ़ने के रूप में आश्चर्यजनक नहीं हैं, इसलिए डिबगिंग झूठी मान्यताओं को प्रकट करने में मदद कर सकता है जो आपने या किसी अन्य डेवलपर ने कोड की स्थिति के बारे में बनाई थी।
हो सकता है कि आप उम्मीद करते हैं कि किसी विधि के पास जाने पर कोई पैरामीटर कभी भी अशक्त नहीं होगा, इसलिए आप कभी भी उस मामले की जांच नहीं करेंगे और इस तरीके को आगे बढ़ाएंगे जैसे कि वह पैरामीटर कभी भी अशक्त नहीं होगा। वास्तविकता यह है कि पैरामीटर है जाएगा कुछ बिंदु भले ही आप विधि है कि पैरामीटर कभी नहीं अशक्त होना चाहिए करने के लिए एक पूर्व शर्त के रूप में सेट पर अशक्त किया जा रहा अंत। यह हमेशा होगा।
उपर्युक्त उदाहरणों में डीबगर्स की उपयोगिता के विपरीत, मुझे यह मुश्किल लगता है और बहु-थ्रेडिंग (यानी, समकालिक, अतुल्यकालिक प्रसंस्करण) का उपयोग करने के लिए कुछ हद तक उपयोगी नहीं है। यह मदद कर सकता है, लेकिन मल्टी-थ्रेड कोहरे में अपने अभिविन्यास को खोना आसान है, जब डिबगर के ब्रेकपॉइंट बिंदु ए पर एक थ्रेड में हिट हो रहे हैं और बिंदु बी पर पूरी तरह से अलग थ्रेड। डेवलपर को नए ब्रेकपॉइंट को धक्का देने के लिए मजबूर किया जाता है " विचार प्रक्रिया "उसके मस्तिष्क के" स्टैक "के शीर्ष पर और नए ब्रेकपॉइंट के बिंदु पर खुद को कोड पर उन्मुख करता है। ब्रेकपॉइंट बी की प्रासंगिकता कम होने के बाद, डेवलपर फिर पहले ब्रेकपॉइंट पर वापस आ जाता है, और यह याद रखना होगा कि ब्रेकपॉइंट बी के ट्रिगर से पहले वह क्या देख रहा था / करती है। मुझे पता है कि यह एक भ्रामक स्पष्टीकरण हो सकता है,
साथ ही समवर्ती कोड की अप्रत्याशितता डेवलपर को समवर्ती कोड डीबग करने में और विचलित कर सकती है।
अंत में, मेरी ईमानदार राय में:
- जब डीबगिंग का उपयोग किया जाता है तो "डिबगिंग थिंक पैटर्न" का फोकस खोने की प्रवृत्ति बढ़ जाती है।
तथा
- किसी भी तरह से = डिबगिंग उत्पादकता में वृद्धि हुई है b / c आपका ध्यान अप्रत्याशित ब्रेकप्वाइंट (रेस की स्थिति के कारण अप्रत्याशित) से बाधित नहीं है।