.net - Release generating .pdb files, why? -


विज़ुअल स्टूडियो 2005 में क्यों रिलीज में संकलन करते समय .pdb फ़ाइलें उत्पन्न होती हैं? मैं रिलीज़ बिल्ड डिबगिंग नहीं करूँगा, इसलिए वे जेनरेट क्यों कर रहे हैं?

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

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

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

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

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

    आप ' वापस जाओ और पीडीबी फाइलों को बाद संकलित करें। * यदि आप उन्हें बिल्ड के दौरान नहीं बनाते हैं, तो आपने अपना मौका खो दिया है यह उन्हें बनाने के लिए कुछ भी चोट नहीं करता है अगर आप उन्हें वितरित नहीं करना चाहते हैं, तो आप उन्हें अपने बायनेरिज़ से छोड़ सकते हैं। लेकिन अगर आप बाद में फैसला लेते हैं कि आप उन्हें चाहते हैं, तो आप भाग्य से बाहर हैं। हमेशा उन्हें जेनरेट करने के लिए और एक प्रतिलिपि को संग्रहित करने के लिए बेहतर है, बस उन्हें कभी भी आवश्यकता पड़ती है।

    अगर आप वास्तव में उन्हें बंद करना चाहते हैं, तो यह हमेशा एक विकल्प होता है अपनी प्रोजेक्ट की प्रॉपर्टी विंडो में, "डीबग जानकारी" विकल्प को किसी भी विन्यास के लिए "कोई नहीं" पर सेट करें जिसे आप बदलना चाहते हैं।

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

    * जैसा कि, जब तक कि आपके स्रोत कोड में बदलाव नहीं हुआ (या आप वर्जन-कंट्रोल सिस्टम से मूल कोड प्राप्त कर सकते हैं), तब तक आप इसे फिर से बना सकते हैं और एक पीडीबी फाइल बना सकते हैं। कम से कम, आमतौर पर यह अच्छी तरह से ज्यादातर समय काम करता है, लेकिन, इसलिए हो सकता है सूक्ष्म अंतर हो इससे भी बदतर, अगर आपने अपने टूलकेन में किसी भी उन्नयन के दौरान (विज़ुअल स्टूडियो के लिए सर्विस पैक लागू करना) बनाया है, तो पीडीबी भी मैच की संभावना कम हैं। पूर्व पोस्टफ़ैक्टो पीडीबी फाइलों की विश्वसनीय पीढ़ी की गारंटी के लिए, आपको अपने संस्करण-नियंत्रण प्रणाली में स्रोत कोड को न केवल संग्रहित करने की आवश्यकता होगी, लेकिन यह भी सुनिश्चित करने के लिए कि आप ठीक से अपने बिल्ड वातावरण के कॉन्फ़िगरेशन को पुन: बनाएँ। यह कहने के बिना जाता है कि पीडीबी फाइलों को बनाने और संग्रह करने में बहुत आसान है।

Comments