2010-09-07 10 views
13

मुझे विंडोज मिनीडम्प (सी कोड) और एक संबंधित एक्सई फ़ाइल मिली है। दुर्भाग्यवश, मेरे पास सटीक मिलान .pdb फ़ाइलें नहीं हैं, लेकिन मेरे पास .pdbs हैं जिनमें एक ही समय में सटीक एक ही कोड शामिल है। Windbg में, मैं उपयोग कर सकते हैं:क्या विजुअल स्टूडियो में बेमेल प्रतीकों को लोड करना संभव है?

.symopt+0x40 

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

+0

यह वास्तव में आपके प्रश्न का उत्तर नहीं देता है, लेकिन आप स्वयं देव उपकरण के एक सतत सेट पर मानकीकरण करके एक बड़ा पक्ष करेंगे। –

+1

हमारे पास एक सतत सेट है। यह सिर्फ इतना है कि हम अपने सॉफ्टवेयर के पुराने संस्करणों का समर्थन करते हैं और इसे विजुअल स्टूडियो के नए संस्करणों में सॉफ़्टवेयर के पुराने संस्करणों को पोर्ट करने के जोखिम के लायक नहीं माना गया था। – Morinar

उत्तर

4

कोई ओवरराइड है, लेकिन this question के पोस्टर उन्हें EXE मिलान करने के लिए PDB फ़ाइलों को संशोधित करने के लिए एक रास्ता मिल गया।

पहले उत्तर पर टिप्पणी से एक के लिए धन्यवाद, मैं बाहर एक लिंक को पुस्तक ": एक प्रोग्रामर्स कुकबुक Undocumented Windows 2000 राज" की pdfs जाँच की। और लेखक पीडीबी फ़ाइल प्रारूप के बारे में बहुत अच्छी जानकारी में जाता है। जैसा कि मैंने पहले कहा था, मेरे पास पहले ही पीडीबी को हेक्स संपादक में लोड कर चुका है और के आसपास कुछ बिट्स फिसल गया है और यह दिखाता है कि मैंने आयु/हस्ताक्षर मिलान किया है, लेकिन यह काम नहीं था। खैर, W2k गोपनीयता पुस्तक से उपयोगिता का उपयोग करने के बाद पीडीबी को शामिल धाराओं में पीडीबी, " " पता चला कि वे स्ट्रीम 3 में उम्र के संदर्भ में एक और छुपाएं !!!!!!! एक बार जब मैंने इसे के रूप में फ़्लिप कर दिया, तो यह विंडबग में मेल खाता था।

सुनिश्चित नहीं है कि आप इस समस्या पर जाना चाहते हैं, लेकिन ऐसा लगता है कि यह किया जा सकता है। यदि यह उत्पादन समर्थन के लिए है तो यह आपके समय के लायक हो सकता है।

+0

मैं इस समस्या के आसपास काम करना समाप्त कर दिया, लेकिन एक जवाब स्वीकार करना चाहता हूं क्योंकि मुझे अपनी उत्तर दर 100% से कम नहीं है ;-) यह एक सबसे उपयोगी जानकारी प्रतीत होता है, इसलिए मैं इसे स्वीकार कर रहा हूं। – Morinar

0

this post के अनुसार एसओएस विंडबग कमांड के साथ-साथ दृश्य स्टूडियो का उपयोग करना संभव है। लेकिन मुझे यकीन नहीं है कि ".symopt" भी इस श्रेणी में आता है।

18

this utility का प्रयास करें:

ChkMatch उपयोगिता है कि क्या एक निष्पादन और डिबग जानकारी फ़ाइल मैच की जांच करने के लिए इस्तेमाल किया जा सकता है। यह निष्पादन योग्य और डीबग जानकारी फ़ाइल के बीच मिलान को लागू करने के लिए भी उपयोग किया जा सकता है, यदि वे संगत हैं।

डीबग जानकारी मिलान और संबंधित मुद्दों के बारे में अधिक जानकारी के लिए, यह article देखें।

समर्थित डिबग जानकारी प्रारूप: DBG, PDB 2.0, PDB 7.0 ...

+1

यह स्वीकार्य उत्तर होना चाहिए। –

+1

यह बिल्कुल स्वीकार्य उत्तर होना चाहिए। – SashaZh

+0

मैं दूसरा, यह समाधान है। –

3

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

मैंने chkmatch का उपयोग नहीं किया है, लेकिन एक दूसरे से मेल खाने के लिए exe या pdb को संशोधित करना ठीक काम करना चाहिए।

ध्यान रखें कि यह तकनीक आपके बाइनरी को डीबग करने के लिए पर्याप्त नहीं हो सकती है।जॉन रॉबिन्स ने अपनी पुस्तक 'डिबगिंग विंडोज' (जिसे मैं अनुशंसा कर सकता हूं) में उल्लेख किया है कि उन्होंने लगभग समान समय पर बनाए गए समान स्रोत पेड़ से अलग-अलग निर्माण परिणामों को देखा है।

हमेशा अपने निर्माण (रिलीज बिल्ड सहित) के साथ पीडीबी प्रतीक बनाएं और बिल्ड उत्पादों के साथ उन्हें संग्रहित करें और अच्छी माप के लिए .map फ़ाइल शामिल करें।

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

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