2012-07-05 10 views
6

मैं google-breakpad का उपयोग कर रहा हूं। यह एक बग रिपोर्टिंग प्रोग्राम है जो किसी अन्य प्रक्रिया के क्रैश की रिपोर्ट करने के लिए पृष्ठभूमि में चलता है।Google ब्रेकपैड क्यों सभी क्रैश को संभाल नहीं करता है? मैं इन मामलों को कैसे डीबग कर सकता हूं?

यह लगभग हर स्थिति में काम करता है।

हालांकि यह कभी-कभी दुर्घटनाग्रस्त होने में विफल रहता है। कोई रिपोर्ट नहीं है और कोई डंप फ़ाइल नहीं है। यह सिर्फ दुर्घटनाग्रस्त हो जाता है। दुर्घटना के लिए अंतिम संकेत एक विंडोज घटना संदेश है।

मैं इन दुर्घटनाओं को कैसे डीबग कर सकता हूं? ब्रेकपैड दुर्घटना को संभालने का कारण क्या होगा? स्थिति को डीबग करने के लिए मैं किन तरीकों का उपयोग कर सकता हूं?

+0

क्या ये एसईएच अपवाद हो सकते हैं? क्या वे स्टैक ओवरफ्लो या एक्सेस उल्लंघन जैसे चीजें हैं? –

+0

मुझे लगता है कि यह ढेर अतिप्रवाह से संबंधित हो सकता है। ब्रेकपैड एक्सेस उल्लंघन को अच्छी तरह से पकड़ रहा है। – Hybrid

+1

ब्रेकपैड का कहना है कि यह SetUnhandledExceptionFilter() फ़ंक्शन (विंडोज़) का उपयोग करता है। मुझे यकीन नहीं है कि SetUnhandledExceptionFilter के लिए कॉलबैक फ़ंक्शन को इस स्थिति में समाप्त होने से पहले भी कहा जाता है या नहीं। – Hybrid

उत्तर

10

विज़ुअल सी ++ सी/सी ++ रनटाइम लाइब्रेरी कुछ परिस्थितियों में SetUnhandledExceptionFilter के साथ हुक सेट को हटा देगी; उदाहरण के लिए, जब यह एक बफर ओवरफ़्लो या अन्य सुरक्षा समस्या का पता लगाता है।

This Microsoft feedback page सूचीबद्ध करता है कि अधिकांश मामलों के लिए इस व्यवहार को कैसे रोकें, लेकिन यह बताता है कि सुरक्षा समस्याओं को पेश किए बिना बफर ओवरफ़्लो केस के लिए यह संभव नहीं है।

+0

मैं उस माइक्रोसॉफ्ट फीडबैक पेज को देखने में असमर्थ हूं - क्या कोई नया लिंक है या कुछ मैं देख सकता हूं? –

+4

पृष्ठ 404 चला गया प्रतीत होता है। मुझे याद नहीं है कि इस पर क्या है, लेकिन _set_abort_behavior और _set_invalid_parameter_handler के लिए एमएसडीएन दस्तावेज़ों को आजमाएं। –

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