2009-11-16 11 views
9

डेल्फी 7 का उपयोग करके, मैं Exception से स्टैक-ट्रेस का प्रतिनिधित्व करने वाली स्ट्रिंग कैसे प्राप्त कर सकता हूं?डेल्फी 7 में GetStackTrace?

try 
    SomethingDodgy(); 
except 
    on E:Exception do begin 
    // print stack trace 
    Log.Write(/* ??? */); 
    end; 
end; 

मैंने सुना है कि नवीनतम डेल्फी में एक GetStackTrace समारोह है, लेकिन मैं के लिए डेल्फी 7. कोई कुछ भी नहीं मिल रहा है, उन्नयन के लिए एक विकल्प :)

+3

ध्यान दें कि नए डेल्फी संस्करणों में 'GetStackTrace' विधि वास्तव में एक स्टैक ट्रेस वापस नहीं करती है। वैसे भी आपको बाहरी अपवाद ढांचे की आवश्यकता है। – jpfollenius

+1

आप जेसीएल मिनटों में स्थापित कर सकते हैं। मैंने इस SO प्रश्न पर एक उदाहरण पोस्ट किया: http://stackoverflow.com/questions/1259563/good-os-delphi-exception-handling-libraries/1260262#1260262 – Runner

उत्तर

-1

Win32 में ढेर ट्रेस नहीं है नहीं है .NET या जावा के रूप में अच्छा (और डेल्फी का नवीनतम वर्सोइन .NET स्टैक ट्रेस का उपयोग करता है)।
वैसे भी, मुझे एक लिंक मिला जो here पर अधिक जानकारी प्रदान करता है (यह ExeEx पर है ताकि समाधान को देखने के लिए अनुमति पर पहले लिंक पर क्लिक करें)।

वहां पृष्ठ के नीचे देखें।

+1

-1। विशेषज्ञों का एक्सचेंज: "सभी टिप्पणियां और समाधान केवल प्रीमियम सेवा सदस्यों के लिए उपलब्ध हैं।" –

+0

मैंने आपको बोटम पर पढ़ाया! समाधान हैं। कृपया डाउनवॉटिंग से पहले ठीक से पढ़ें! –

+0

@ डिमिट्री: कोई समाधान नहीं है। नीचे नहीं और कहीं और नहीं। – jpfollenius

15

आप madExcept, एक अद्भुत अपवाद हैंडलिंग ढांचे का उपयोग करने का प्रयास कर सकते हैं।

माधशी में नमूना कोड ढेर है; मुझे यकीन है कि मैंने वहां पहले स्टैक-ट्रेस सामान का उपयोग किया है।

जैसा कि दिमित्री ने नोट किया, JCL में स्टैक-ट्रेस कोड भी है; एक पुराना नमूना here है।

+0

हाँ, पागल एक्सेप्ट अद्भुत है - लेकिन यह वाणिज्यिक कोड है जिसे मैं लिख रहा हूं, और मुझे नहीं लगता कि मैं कंपनी को पागलपन खरीदने के लिए अभी प्राप्त कर सकता हूं। जेसीएल अच्छा लगता है, हालांकि, मैं एक नज़र डालूंगा .. – Blorgbeard

+3

यह सब महंगा नहीं है। आप इस काम के आसपास कितने घंटे काम करना चाहिए ?? –

+0

हाँ - लेकिन इस परियोजना में स्टैक ट्रेस एक अच्छा है, इसलिए मैं इसके आसपास काम करने की कोशिश करने में ज्यादा समय नहीं लगाऊंगा। – Blorgbeard

1

MemChk उपयोग करने में बहुत आसान है (विशेष रूप से मेमोरी लीक खोजने/खोजने के लिए) और जानता है कि कोड पते से स्टैक ट्रेस कैसे प्रस्तुत किया जाए।

5

मैंने गेम में EurekaLog फेंक दिया। यह एक अच्छा उपकरण है और महंगा नहीं है।

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