2008-09-16 20 views
41

मैंने पीडीबी फाइलों का उपयोग करके सुना है कि दुर्घटनाग्रस्त होने का निदान करने में सहायता कर सकते हैं।
मेरा मूल समझ यह है कि आप विजुअल स्टूडियो को स्रोत फ़ाइल, पीडीबी फ़ाइल और क्रैश जानकारी (डॉ वाटसन से)
क्या कोई यह बता सकता है कि यह सब कैसे काम करता है/क्या शामिल है? (धन्यवाद!)मैं पीडीबी फाइलों का उपयोग कैसे करूं

+0

धन्यवाद जवाब के लिए अब तक (मैं सवाल थोड़ा अधिक समय खोलने छोड़ देंगे) मैं भी इस उपयोगी पाया है: http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx – hamishmcn

उत्तर

30

जब आप अपनी परियोजना बनाते हैं तो पीडीबी फाइलें उत्पन्न होती हैं। उनमें निर्मित बाइनरी से संबंधित जानकारी होती है जो विजुअल स्टूडियो व्याख्या कर सकती है।

जब एक कार्यक्रम दुर्घटनाओं और यह क्रैश रिपोर्ट उत्पन्न करता है, दृश्य स्टूडियो है कि रिपोर्ट लेने के लिए और आवेदन के लिए PDB फ़ाइल के माध्यम से इसे वापस लिंक स्रोत कोड के लिए करने में सक्षम है। पीडीबी फाइलों को उसी बाइनरी से बनाया जाना चाहिए जो क्रैश रिपोर्ट उत्पन्न करता है!

कुछ मुद्दे हैं जो हमें समय के साथ सामना करना पड़ा है।

  • क्रैश रिपोर्ट को डिबग करने वाली मशीन को बाइनरी बनाने वाली मशीन के समान पथ पर स्रोत होना आवश्यक है।
  • रिलीज अक्सर हद तक अनुकूलन बनाता है जहां वस्तु सदस्य चर

किसी को भी जानता है कि कैसे, पूर्व हराने मैं कुछ इनपुट के लिए आभारी होंगे करने की स्थिति को देखने नहीं कर सकता।

+5

स्रोत फ़ाइल पथ में मदद करने का एक तरीका: किसी विशेष निर्देशिका में ड्राइव अक्षर को मैप करने के लिए SUBST का उपयोग करें। http://technet.microsoft.com/en-us/library/bb491006.aspx – MarkJ

+0

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

34

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

+3

+1: "प्रोग्राम डेटाबेस" (पीडीबी) के अच्छे विवरण के लिए क्या है। – AMissico

12

आप एक प्रतीक सर्वर की स्थापना करने और अपने स्रोत कोड नियंत्रण प्रणाली के लिए PDB फ़ाइलों का अनुक्रमण ध्यान देना चाहिए। मैं हाल ही में हमारे उत्पाद के लिए इस प्रक्रिया के माध्यम से चला गया और यह बहुत अच्छी तरह से काम करता है। आपको द्विआधारी के साथ उपलब्ध पीडीबी फाइलें बनाने के बारे में चिंतित होने की आवश्यकता नहीं है, न ही डंप फ़ाइलों को डीबग करते समय उचित स्रोत कोड कैसे प्राप्त करें।

जॉन रॉबिंस 'किताब: http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1

minidumps पैदा करने के लिए कुछ नमूना कोड के लिए यहाँ देखो (जो बाद दुर्घटना विश्लेषण के लिए प्रतिबंधित किया की जरूरत नहीं है - आप के बिना अपने कोड में किसी भी बिंदु पर उन्हें उत्पन्न कर सकते हैं दुर्घटनाग्रस्त): http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

+0

स्रोत प्रतीक सर्वर को सेटअप करने के तरीके पर शानदार लिंक! मै शायद यह कर सकता हूँ। लिंक के लिए +1। – dotnetdev

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