सबसे पहले, समस्या: मेरे पास कई निःशुल्क प्रोजेक्ट हैं, और किसी भी सॉफ़्टवेयर में उनमें बग शामिल हैं। बग का सामना करते समय कुछ साथी उपयोगकर्ता मुझे स्टैक निशान के साथ एक बग-रिपोर्ट भेजते हैं। गलती की जगह ढूंढने को सरल बनाने के लिए, मैं इस स्टैक निशान में रेखा संख्या देखना चाहता हूं। यदि एप्लिकेशन .pdb फ़ाइलों के बिना भेज दिया गया है, तो सभी पंक्ति जानकारी खो जाती है, इसलिए वर्तमान में मेरी सभी परियोजनाएं .pdb फ़ाइलों के साथ तैनात हैं, और इसलिए जेनरेट किए गए स्टैक निशानों में यह संख्याएं हैं। लेकिन! लेकिन मैं इस फाइल को वितरण में नहीं देखना चाहता हूं और सभी .pdb को हटाना चाहता हूं। वे उन भ्रमित, संस्थापक में अंतरिक्ष, आदि.net में उपयोगकर्ता बग-रिपोर्ट से लाइन नंबरों के साथ स्टैक ट्रेस को मनोरंजन करें?
डेल्फी समाधान की खपत: अपने आवेदन की पैदल दूरी पर स्टैक पर अपवाद पर और पते इकट्ठा: बहुत समय पहले जब मैं एक डेल्फी प्रोग्रामर था, मैं निम्नलिखित तकनीक का इस्तेमाल किया। फिर, जब मुझे बग-रिपोर्ट प्राप्त होती है, तो मैंने एक उपकरण का उपयोग किया जो कि संग्रहित पते और मेरी मशीन पर स्थित संबंधित प्रतीक फ़ाइलों के आधार पर फ़ंक्शन नामों और रेखा संख्याओं के साथ वैध स्टैक ट्रेस का पुनर्निर्माण करता है।
प्रश्न: क्या कोई lib, या तकनीक है या .NET में जो कुछ भी करना है?
स्थिति अद्यतन: बहुत दिलचस्प है, जो अक्सर पूछताछ आपकी खुद की जांच शुरू करने का सबसे अच्छा तरीका है। उदाहरण के लिए मैं कुछ समय के लिए इस समस्या के बारे में सोचता हूं, लेकिन कई दिनों पहले ही उत्तर की तलाश करना शुरू कर देता हूं।
विकल्प 1: मिनीडंप। बहुत गुगलने के बाद मुझे कोड से मिनी डंप बनाने और प्रबंधित मिनी डंप से स्टैक को फिर से बनाने का तरीका मिला है। clrdump
- पुनर्वितरण विधानसभा मिनी डंप प्रपत्र कोड बनाने के लिए Creating and analyzing minidumps in .NET production applications
हालांकि यह समाधान दो अतिरिक्त विधानसभाओं (~ आकार में 1MB) पुन: वितरित करने की जरूरत है, और मिनी डंप कुछ जगह लेता है, और उपयोगकर्ता को ईमेल द्वारा भेजने के लिए यह असहज है। तो मेरे उद्देश्यों के लिए, अभी, यह अस्वीकार्य है।
विकल्प 2: सुराग के लिए weiqure धन्यवाद। प्रत्येक स्टैक फ्रेम के लिए प्रबंधित आईएल ऑफसेट निकालना संभव है। अब समस्या यह है कि इस ऑफ़सेट के आधार पर .pdb से लाइन नंबर कैसे प्राप्त करें। और मैं क्या पाया है:
- PDB File Internals, बस जानकारी के लिए है क्योंकि:
- ISymbolReader - कामयाब आसान xpath प्रसंस्करण
इस का उपयोग के लिए कार्यक्रम डेटाबेस फ़ाइलों
मुझे केवल आश्चर्य है कि क्यों कोई और इस तरह के उपकरण को लागू नहीं करता है? मुझे विश्वास नहीं है कि यह केवल मेरे लिए दिलचस्प है।
एफवाईआई: डेल्फी में यह अब आसान है क्योंकि पागलपन है जो एक स्टैक ट्रेस और अन्य उपयोगी सूचनाएं (अनचाहे) अपवादों पर एक रिपोर्ट में डालता है। – schnaader
आपने किस विकल्प का चयन किया? मैं खुद भी समाधान की तलाश में हूं। – Giorgi
मैंने दूसरा विकल्प चुना और आंतरिक अपवाद डंप को बदलने के लिए कक्षाओं का समूह लिखना चुना। मैं सभी जानकारी और स्रोतों के साथ अपने समाधान के बारे में एक लेख लिखने की भी योजना बना रहा हूं। – arbiter