2013-02-19 31 views
9

मेरे डेल्फी कार्यक्रम एक NT सेवा के रूप में चलाता है और अधिक से अधिक 2 महीने के लिए ठीक से चल रहा है और फिर इसे अचानक बंद हो जाता है और एक क्रैश डंप उत्पन्न करता है:जब मेरा प्रोग्राम पता 0 पर अपवाद 0xc0000005 के साथ दुर्घटनाग्रस्त हो जाता है तो मैं क्या करूँ?

Faulting अनुप्रयोग का नाम: tca_shctisvc_ip.exe, संस्करण: 7.1.0.1843 , समय स्टाम्प: 0x2a425e19 दोषयुक्त मॉड्यूल का नाम: अज्ञात, संस्करण: 0.0.0.0, समय स्टाम्प: 0x00000000 अपवाद कोड: 0xc0000005 दोष ऑफ़सेट: 0x00000000

विंडोज घटना की जानकारी के आधार से काम करने के लिए कोई वास्तविक पतों थे लॉग इन करें। मैं मिनी डंप को WinDbg में लोड करने में सक्षम था और कहा कि वहां एक अपवाद था लेकिन स्टैक फ्रेम के साथ समस्याएं मिलीं। एक अलग उपकरण (व्यूमिनिडम्प) मुझे चलने वाले धागे के ढेर दिखाने में सक्षम था।

मैं इस मुद्दे को हल करने के लिए कहां से शुरू करूं?

उत्तर

24

अपवाद कोड 0xc0000005 एक एक्सेस उल्लंघन है। गलती ऑफसेट 0x00000000 का मतलब है कि आपकी सेवा के कोड में कुछ nil पॉइंटर तक पहुंच रहा है। यह पता लगाने के लिए कि यह क्या पहुंच रहा है, आपको बस सेवा को डीबग करना होगा। यदि आप इसे डीबगर के अंदर नहीं चला सकते हैं, तो एवी के समय आपकी सेवा क्या कर रही थी, यह जानने के लिए कम से कम एक तृतीय-पक्ष अपवाद लॉगर फ्रेमवर्क, जैसे कि EurekaLog या MadExcept इंस्टॉल करें।

+5

+1। यह # 1 सबसे उपयोगी डीबगिंग टूल है जिसे मैंने डीबगर से अलग पाया है। –

0

स्टैक फ्रेम के साथ समस्याएं स्टैक भ्रष्टाचार (एक ट्रूली भयानक जानवर), अनुकूलन, या सी/सी ++/सी #/डेल्फी जैसे मिश्रण ढांचे को इंगित कर सकती हैं - इसके रूप में स्टैक फ्रेम के संबंध में कोई पूर्ण मानक नहीं है । (कुछ भाषाओं में उन्हें भी नहीं है!)।

तो, मैं स्टैक फ्रेम मुद्दों से थोड़ा नाराज होने का सुझाव देता हूं, इसे अनदेखा करता हूं, और फिर केवल रेमी के उत्तर का उपयोग करता हूं।

0

मैं एक अलग आवेदन के साथ एक ही मुद्दा हो रही थी,

Faulting application name: javaw.exe, version: 8.0.51.16, time stamp: 0x55763d32 
Faulting module name: mscorwks.dll, version: 2.0.50727.5485, time stamp: 0x53a11d6c 
Exception code: 0xc0000005 
Fault offset: 0x0000000000501090 
Faulting process id: 0x2960 
Faulting application start time: 0x01d0c39a93c695f2 
Faulting application path: C:\Program Files\Java\jre1.8.0_51\bin\javaw.exe 
Faulting module path:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 

मैं Microsoft से बढ़ी शमन अनुभव टूलकिट (EMET) का उपयोग कर रहा था और मैं EMET को अक्षम करके पाया में javaw.exe पर सुविधाओं मेरी मामला यह गलत एप्लीकेशन था, इसलिए यह मेरे एप्लिकेशन को सफलतापूर्वक चलाने में सक्षम बनाता था। सुनिश्चित करें कि आपके पास स्मृति पर सुरक्षा सुरक्षा के साथ कोई समान सॉफ़्टवेयर नहीं है। अपवाद लॉगर का सुझाव देने के लिए

+0

ऐसा लगता है जैसे ओरेकल ने अपने जावा एसई 8 जेआरई बनाने के लिए डेल्फी का उपयोग किया;) – mjn