एक बार मैंने बहुत सारे डिबगिंग कोड का उपयोग किया। मैं लगभग पूरी तरह से विंडोज को लक्षित कर रहा था, इसलिए इस डिबग स्ट्रिंग आउटपुट फ़ंक्शन के बहुत सारे थे जो मुझे याद नहीं है कि किसी भी अधिक वर्तनी कैसे करें, इसलिए मैं एक विशेष कार्यक्रम के साथ ट्रेस पर कब्जा कर सकता हूं।
कुछ डिबग कोड जगह पर रहे, विशेष रूप से सामान जो कि कॉलिंग के घोंसले को देने के लिए था। हालांकि, भले ही डिबग स्ट्रिंग चीज ज्यादातर एक उत्पादन प्रणाली पर दिखाई नहीं देगी, लेकिन यह अभी भी सशर्त संकलन के तहत किया गया था।
हालांकि, वास्तविकता यह है कि यह सब डिबग कोड एक ऐसी चीज़ के लिए बहुत प्रयास था, जिसे आदर्श रूप से एक अलग तरीके से नियंत्रित किया जाता है - बेशक, एक डिबगर। उस समय, मैं बोरलैंड C ++ डिबगर से प्रभावित नहीं था। उपकरण वहाँ थे, लेकिन वे भी अक्सर भ्रामक परिणाम देते थे, और गैर-आईडीई डीबगर (अक्सर आवश्यक) का उपयोग करते हुए शॉर्टकट कुंजी को याद करते थे, जिसका अर्थ था हाथ में नौकरी से विचलित होना।
एकमात्र डीबगिंग अनुभव मैंने पाया है कि बदतर है, कमांड-लाइन GDB।
हर दिन आपके द्वारा उपयोग किए जाने वाले उपकरणों के साथ एक विशेषज्ञ होने के नाते, निश्चित रूप से, महत्वपूर्ण है - लेकिन डिबगिंग वास्तव में कुछ ऐसा नहीं होना चाहिए जो आप हर दिन करते हैं। यदि आप डिबगर का उपयोग करते हैं, तो आप दर्जनों कमांड और / या कीबोर्ड शॉर्टकट सीखने के साथ ठीक हैं, जो मुझे थोड़ा लाल झंडा-ईश लगता है।
जब तक मैं विजुअल स्टूडियो 7 में काम कर रहा था, तब तक यह स्पष्ट था कि डिबगिंग बहुत व्यावहारिक और प्रभावी हो सकती है। यदि आप Visual Studio (एक्सप्रेस संस्करण शामिल) में अपना डिबगिंग कर सकते हैं, तो डीबगिंग एक हवा है। इसमें कोई शक नहीं कि अगर आप सही GUI / IDE फ्रंट एंड पा सकते हैं, तो GDB आसान और प्रभावी है, हालाँकि मैंने अभी तक उस खोज को पूरा नहीं किया है।
इकाई परीक्षण के लिए भी कुछ कहा जाना चाहिए, जिसमें कवरेज विश्लेषण के साथ gcov का उपयोग किया जाएगा। जितना अधिक आप अपने पुस्तकालयों के व्यवहार में विश्वास करते हैं, उतनी ही गहरी आपके डीबगिंग की आवश्यकता होती है - और कम बार आपको पहली बार डीबगर की आवश्यकता होती है। और यूनिट परीक्षण लिखना काफी उचित है जो आपको अधिकांश दिनों में करना चाहिए।
अप्रत्याशित रूप से महत्वपूर्ण उपकरण = सेमीके, एक बिल्ड टूल जो मुझे आसानी से जीसीसी के लिए और वीसी ++ के लिए अन्य चीजों के बीच निर्माण के बीच स्विच करने की अनुमति देता है। इसलिए मैं GCC का उपयोग करके अपनी इकाई परीक्षण और gcov- आधारित कवरेज कर सकता हूं, लेकिन डीबगर ++ का उपयोग करने के लिए आसानी से वीसी ++ में स्विच कर सकता हूं।