2010-01-09 19 views
7

के बिना एप्लिकेशन क्रैश मेरे पास एक बहुप्रचारित .NET C# अनुप्रयोग है, यह Direct3D 9/10 और XAudio2 का उपयोग करता है। (डायरेक्ट 3 डी को केवल एक थ्रेड द्वारा एक्सेस किया जाता है, जो XAudio2 के लिए समान होता है। डायरेक्ट 3 डी समस्या नहीं है क्योंकि त्रुटि उसके व्यवहार में किसी भी बदलाव के बिना या तो DX9 या DX10 मोड में प्रकट होती है।)बिना किसी प्रकार के अपवाद

कभी-कभी (कुछ ऐसे क्षेत्र हैं जो देता है यह समस्या यादृच्छिक रूप से) इस एप्लिकेशन को एक अप्रत्याशित तरीके से दुर्घटनाग्रस्त कर दिया गया है। भले ही एप्लिकेशन को विजुअल स्टूडियो के माध्यम से डीबगर के साथ शुरू किया गया हो, फिर भी यह बिना किसी अपवाद के क्रैश हो जाता है। (यह कहकर शुरू होता है कि "applicationname.svchost.exe क्रैश हो गया है, आदि। आदि। क्या आप डीबग करना चाहते हैं?", अगर मैं हाँ दबाता हूं तो यह मुझे बताता है कि "आप पहले से बंद किए गए एप्लिकेशन को डीबग नहीं कर सकते हैं।)

वहां दुर्घटना का कारण क्या है इसका पता लगाने का कोई तरीका नहीं है? क्योंकि मैं विचारों से बाहर हूं, डीबगर मुझे कोई जानकारी नहीं दे रहा है। अपवाद के बिना मैं एक स्टैकट्रैक या डंप भी नहीं कर सकता। पी (मुझे लगता है कि एक सिंक्रनाइज़ेशन समस्या है (यहां तक ​​कि उस क्षेत्र में भी सोचा गया है कि मैं केवल अनुक्रमिक काम कर रहा हूं ...), लेकिन हे क्यों अपवाद लॉन्च नहीं कर रहा है?: |)

उन क्षेत्रों में जहां समस्या तब होती है जब मैं एक उपन्यास से संबंधित कक्षाओं की एक श्रृंखला को पुनः लोड कर रहा हूं (अनुक्रमिक कोर थ्रेड में, इसलिए मुझे संदेह है कि यह एक मुद्दा हो सकता है) और XAudio2 के माध्यम से एक नया संगीत शुरू करना। (बीटीडब्ल्यू, एम क्या हैं XAudio2 के बारे में अल्टिथ्रेडिंग विचार? क्या यह एकाधिक थ्रेड से कॉल करना सुरक्षित है?)

सहायता के लिए धन्यवाद।

पीएस सभी कॉलों की निगरानी करने के लिए मेरे साथ संलग्न करने के लिए एक सॉफ्टवेयर है और मुझे बताता है कि दुर्घटना से पहले आखिरी कॉल क्या है?

+0

प्रोग्राम को क्रैश होने पर आपको सटीक संदेश पोस्ट करना चाहिए। मुझे संदेह है कि यह वास्तव में कहता है "दुर्घटनाग्रस्त है।" त्रुटि संदेश में कुछ उपयोगी संकेत हो सकते हैं। – Jacob

+0

वीएस डीबगर द्वारा कोई संदेश और कोई अपवाद नहीं दिया गया है, संदेश "एप्लिकेशन name.svchost.exe काम करना बंद कर दिया गया है, क्या आप डीबग करना चाहते हैं?", अगर मैं हाँ दबाता हूं तो यह एक और दृश्य स्टूडियो शुरू करता है और मुझे बताता है "आप नहीं कर सकते पहले से बंद एक एप्लिकेशन डीबग करें " – feal87

उत्तर

4

आपको Windbg का उपयोग करने का प्रयास करना चाहिए, क्रैश डंप का विश्लेषण करने से आपको समस्या पर इंगित करना चाहिए, यदि आपका संदेह सही है और यह सिंक्रनाइज़ेशन समस्या है, तो समस्या का कारण स्पॉट करना मुश्किल हो सकता है।

+0

मुझे विंडबग का उपयोग करने में समस्या मिली, यह XAudio2 के साथ कुछ पागल त्रुटि थी। धन्यवाद! – feal87

2

क्या आपने अपने विंडोज़ प्रशासन पैनल में इवेंट लॉग की जांच की है? न्यूनतम विवरण के साथ इस खंड में किसी भी प्रकार की सभी त्रुटि हमेशा लॉग इन होती है।

एक बार मेरे पास एक ऐसा एप्लिकेशन था जो अपवादों के बिना दुर्घटनाग्रस्त हो रहा था और मुझे मिली एकमात्र सहायता इवेंट लॉग व्यूअर थी जहां मुझे पता चला कि दुर्घटना का स्रोत एक स्टैक ओवरफ्लो एक्सेप्शन था।

+0

चेक किया गया, मेरे ऐप या विजुअल स्टूडियो से संबंधित कोई त्रुटि नहीं ... – feal87

+0

संभावना है कि इवेंट लॉग में त्रुटि होगी, शायद कुछ अस्पष्ट सेवा या डीएल में? – AUSteve

+0

नहीं, कोई संदेश नहीं। – feal87

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