2009-03-03 3 views
45

क्या आपको रिलीज के तहत संकलन के साथ .pdb फ़ाइल को तैनात करना है?क्या आपको रिलीज के तहत संकलन के साथ .pdb फ़ाइल को तैनात करना है?

जब भी आप रिलीज करते हैं तो यह एक .pdb को संकलित क्यों करता है?

उत्तर

6

यदि आप चाहते हैं, तो आप संकलन विकल्पों में पीडीबी फ़ाइल पीढ़ी को भी बंद कर सकते हैं।

-4

नहीं, आपको .pdb फ़ाइल को तैनात करने की आवश्यकता नहीं है।

MSDN से शब्दों में, "एक PDB फ़ाइल बन जाता है/डिबग (विजुअल बेसिक/सी #) के साथ निर्माण।", तो यह डिबग डेटाबेस बनाने नहीं किया जाना चाहिए जब जारी करने के लिए संकलन।

0

नहीं, आप .pdb फ़ाइलों को शिप नहीं करते हैं। वे उत्पन्न होते हैं क्योंकि कभी-कभी रिलीज बिल्ड को डीबग करने में सक्षम होना उपयोगी होता है।

36

नहीं, आपको उन्हें तैनात करने की आवश्यकता नहीं है।

क्यों वे रिलीज में भी बने हैं। एक PDB फ़ाइल वास्तव में उपयोग करता है की एक जोड़ी है, लेकिन प्राथमिक लोगों (कम से कम मेरे लिए)

  1. डिबगिंग
  2. रूपरेखा
इन कार्यों की

दोनों वैध रिहाई बाइनरी पर किया जाता है यही वजह है कि है रिलीज बिल्ड में पीडीबी शामिल है। असल में, जब वाटसन को डिबगिंग करते हुए रिलीज बिल्ड के खिलाफ 100% समय लगता है। एक PDB के बिना मैं dissasembly :(

+0

अब मैं उत्सुक हूं। प्रोफाइलिंग में पीडीबी का उपयोग कैसे किया जाता है? –

+2

@Dan, प्रोफाइलिंग का हिस्सा आपकी असेंबली में यादृच्छिक स्थानों को उपयोगकर्ता कोड पर वापस मैप करने में सक्षम है। अन्यथा आप नहीं जानते कि कौन सा कोड व्यायाम किया गया था, केवल असेंबली। पीडीबी असेंबली मैपिंग के लिए बहुत अच्छा है -> स्रोत (यह एक कारण है कि डीबगर को उनकी आवश्यकता होती है) – JaredPar

+0

ठीक है - मुझे लगता है कि मैं डीबगिंग के उस हिस्से पर विचार करूंगा। ;-) मैंने सोचा था कि आप रिलीज कोड के कुछ प्रकार के प्रदर्शन विश्लेषण का मतलब है। –

2

के माध्यम से देख नहीं का सहारा लेना होगा। आप उन्हें वितरित करने के लिए की जरूरत नहीं है। यह डिबगिंग के साथ मदद करेंगे (या मुझे कहना चाहिए यह डिबगिंग समझदार लोगों के लिए संभव कर देगा)

आप विजुअल स्टूडियो में जेनरेट किए गए प्रतीकों के 'स्तर' को भी बंद या समायोजित कर सकते हैं - बस प्रोजेक्ट प्रॉपर्टीज/'बिल्ड' टैब/'एडवांस्ड' पर जाएं - और 'डीबग जानकारी' में समायोजन करें क्षेत्र

0

एवीआईसीओडी के इंटरसेप्टस्टूडियो जैसे कुछ टूल्स पीडीबी फाइलों का उपयोग स्रोत के खोलने के बजाए उपकरण के भीतर से किसी विशेष अपवाद/स्टैक ट्रेस/स्थानीय के स्रोत को देखने के लिए करते हैं। और एक विशिष्ट रेखा पर जाएं।

4

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

3

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

0

आपको उन्हें चलाने की आवश्यकता नहीं है।

पीडीबी फ़ाइलों का उपयोग डीबग करने के लिए भी किया जा सकता है भले ही बिल्ड रिलीज कॉन्फ़िगरेशन पर हो।

9

आपको अपनी बाइनरी के साथ पीडीबी फ़ाइलों को तैनात और वितरित करने की आवश्यकता नहीं है।

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

1

चूंकि इस धागे के अधिकांश लोगों ने कहा है: नहीं, आपको पीडीबी फ़ाइल को शिप करने की आवश्यकता नहीं है; लेकिन वास्तव में आपको जंगली में कोड जारी करने का इरादा रखना चाहिए।

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

+1

असल में, वे आसानी से आपको एक मेमोरी डंप भेज सकते हैं (यहां तक ​​कि एक पूर्ण भी नहीं होना चाहिए, कोई भी विंडोज पीसी एक उत्पन्न कर सकता है) जो कम से कम आपको संपूर्ण कॉलस्टैक बताएगा और आमतौर पर वेरिएबल्स शीर्ष-फ़ंक्शन कॉल में पास हो गए –

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