2012-05-04 22 views
6

मेरे पास एक ऐसा ऐप है जो हाल ही में दुर्घटनाग्रस्त हो गया और मैं यूरेकालॉग का उपयोग करके अपना कॉलस्टैक प्राप्त करने में सक्षम था। मैंने जो देखा वह यह है कि एक इकाई को अंतिम रूप दिया गया था लेकिन ऐप बंद नहीं हुआ और काम करना जारी रखा।इकाई में अंतिमकरण विधि कब कहा जाता है?

AFAIK, अंतिमकरण अनुभाग केवल ऐप को समाप्त होने पर ही बुलाया जाता है। लेकिन यह मेरे साथ नहीं हुआ था।

क्या कोई जानता है कि अंतिमकरण विधि क्यों कहा जाता था जब ऐसा नहीं किया जाता था?

संपादित

इस एप्लिकेशन को किसी भी DLLs या bpls उपयोग नहीं करता।

EDIT2

क्या यह संभव है कि एक धागा जब अंतिम रूप दिए जाने कह सकते हैं समाप्त हो गया?

+0

लाइन पर टिप्पणी करें, देखें कि समस्या बनी रहती है, यदि हां, तो आपकी समस्या एक अलग जगह पर है, अन्यथा, आपको फ़ंक्शन के बारे में अधिक जानकारी प्रदान करनी है, आमतौर पर यूरेका सही है ... – ComputerSaysNo

+0

मैं पुन: पेश करने की कोशिश कर रहा हूं लगभग 2 घंटे तक समस्या और मुझे अभी तक कुछ भी नहीं मिला है। –

+1

यदि आप इसे पुन: पेश नहीं कर सकते हैं, तो यह प्रश्न बहुत व्यर्थ है। समाप्ति समय पर 'अंतिमकरण' होता है। –

उत्तर

4

अंतिमकरण दो स्थानों पर बुलाया जाता है। सबसे आम बात यह है कि जब आवेदन समाप्त हो जाता है। लेकिन जब उन्हें एक डीएलएल (या बीपीएल) अनलोड किया जाता है, तब भी उन्हें कॉल किया जा सकता है, जो एप्लिकेशन समाप्त होने पर स्वचालित रूप से होता है लेकिन अगर कोड स्पष्ट रूप से इसे उतारता है तो प्रोग्राम के बीच में भी हो सकता है।

क्या यह संभव है कि यह क्या हो रहा है?

+0

पुलिस। यह ऐप किसी भी डीएलएस या बीपीएल का उपयोग नहीं करता है। –

+6

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

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