2012-01-30 7 views
8

सामान्य रूप से मुझे मानों के अर्थ की एक सूची नहीं मिल रही है कि WinDbg के !analyze -v कमांड के आउटपुट में विभिन्न फ़ील्ड शामिल हो सकते हैं।WinDbg के PRIMARY_PROBLEM_CLASS STACKIMMUNE का क्या अर्थ है?

खोज इस तथ्य के कारण मुश्किल है कि कमांड का आउटपुट अक्सर फ़ील्ड मानों के बिना पोस्ट किया जाता है (जैसे DEFAULT_BUCKET_ID और PRIMARY_PROBLEM_CLASS) को स्पष्ट रूप से संबोधित किया जा रहा है। क्या कोई संदर्भ सूची है?

अधिक विशिष्ट होने के लिए: मेमोरी डंप के विश्लेषण के दौरान, !analyze -v कमांड के आउटपुट ने संकेत दिया कि DEFAULT_BUCKET_ID और PRIMARY_PROBLEM_CLASS दोनों "STACKIMMUNE" हैं। इसका क्या मतलब है?

उत्तर

7

सबसे पहले !analyze काम करता है कि कैसे एक छोटा सा परिचय।

जब !analyze (आदि और अपवादों के कुछ अन्य प्रकार, उदाहरण के लिए, SEH exceptions के लिए, सी ++ अपवाद हैं, पूर्णांक अतिप्रवाह, शून्य से भाग,) एक access violation का कारण निर्धारित करने की कोशिश करता है, यह धागे की कॉल स्टैक पर लग रहा है जिसने थ्रेड के शीर्ष पर क्या अपवाद और आंकड़े फेंक दिए। हालांकि, सभी ढेर फ्रेम उपयोगी नहीं हैं।

उदाहरण के लिए, सी ++ अपवादों के लिए आपको kernel32!RaiseException और your_module!__except_handler3 स्टैक के शीर्ष पर दिखाई देगा। उन फ्रेमों को छोड़ दिया जाना चाहिए, क्योंकि वे समस्या का कारण बहुत कम संभावना नहीं हैं। कभी-कभी !analyze को दिलचस्प फ्रेम पर जाने के लिए बहुत सारे फ्रेम छोड़ना पड़ता है। बस example on other Stack Overflow question देखें, जहां अपमानजनक कोड नीचे ~ 40 फ्रेम है।

अपने प्रश्न का उत्तर देने के लिए: STACKIMMUNE एक संकेत है कि सभी कॉल स्टैक में फ्रेम छोड़ दिए गए हैं। ऐसा तब हो सकता है जब स्टैक दूषित हो या जब आपके पास गलत प्रतीक हों और !reload /i किसी भी मेल नहीं खाते को अनदेखा करने के लिए, और शायद कई अन्य मामलों में उपयोग किया जाए।

+0

धन्यवाद। यह बहुत स्पष्ट है, लेकिन क्या सभी संभव PRIMARY_PROBLEM_CLASS मानों और उनके अर्थ की कोई सूची है? –

+0

क्षमा करें, मुझे किसी भी व्यापक विवरण के बारे में पता नहीं है! विश्लेषण आउटपुट होगा, जानकारी की एक बेकार बिट्स। –

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