2011-06-30 5 views
5

क्या कोई निश्चित ऊपरी-लीवर फ़ंक्शन इसे सीधे या अप्रत्यक्ष रूप से कॉल करता है या नहीं, यह जानने के लिए कि मेरे प्रोजेक्ट में एक विशेष फ़ंक्शन के लिए कोड पथ की पूरी सूची को तुरंत खोजने का कोई तरीका है? उदाहरण के लिए, कुछ संभव उत्पादन निर्धारित करने के लिए MyLowLevelFunctionTargetFunction से पहुंचा जा सकता है:मैं डेल्फी परियोजना के लिए रिवर्स कॉल पेड़ कैसे उत्पन्न कर सकता हूं?

कोड पथ 1

 
ModuleA2.TopLevelFunction 
|--ModuleA1.SomeFunction 
|----Utility.MyLowLevelFunction 

कोड पथ 2

 
ModuleB2.TopLevelFunction 
|--TargetModule.TargetFunction <-- This calls MyLowLevelFunction indirectly 
|----ModuleB1.SomeFunction 
|------Utility.MyLowLevelFunction 
+0

संभावित डुप्लिकेट [डेल्फी Win32 एप्लिकेशन में कॉल स्टैक प्रदर्शित करें] (http://stackoverflow.com/questions/258727/display-the-call-stack-in-a-delphi-win32- एप्लिकेशन) या [ समय-समय पर कॉल स्टैक/स्टैक ट्रेस लॉग करने का एक तरीका चाहिए] (http://stackoverflow.com/questions/2326980/need-a-way-to-periodically-log-the-call-stack-stack-trace-for- प्रत्येक विधि-प्रक्रिया) –

+1

मैं डुप्ली पर गलत हो सकता हूं। क्या आप कोड के स्थिर विश्लेषण की तलाश में हैं या आप रनटाइम पर कुछ ढूंढ रहे हैं? –

+0

मुझे नहीं लगता कि यह एक डुप्ली है। यह एक रिवर्स कॉल ट्री रिपोर्ट (कॉल स्टैक नहीं) के बारे में है, आमतौर पर स्थैतिक विश्लेषण के माध्यम से किया जाता है हालांकि मुझे लगता है कि आप इसे नमूना प्रोफाइलर के साथ कर सकते हैं। –

उत्तर

6

एक Reverse call tree Peganza द्वारा पास्कल विश्लेषक है रिपोर्ट। मैं एक ग्राहक हूं और इसके साथ बहुत खुश हूं, हालांकि मैंने उस विशेष प्रकार की रिपोर्ट का कभी भी उपयोग नहीं किया है, इसके बजाय एक सरल cross-ref report पसंद करता है, जो इसके पास भी है।

एक दिलचस्प साइड-नोट के रूप में स्थिर विश्लेषण उपकरण अप्रत्यक्ष कॉल, जैसे ईवेंट कॉलबैक के माध्यम से असफल हो जाएंगे।

+0

हाय वॉरेन, आपके जैसे पास्कल विश्लेषक के उपयोगकर्ता से जवाब प्राप्त करना बहुत भाग्यशाली है :) मैंने पास्कल विश्लेषक के मूल्यांकन संस्करण को डाउनलोड किया है। हालांकि मूल्यांकन संस्करण में "रिवर्स कॉल ट्री रिपोर्ट" और न ही "क्रॉस-रेफ रिपोर्ट" सुविधा शामिल नहीं है। मैं सोच रहा था कि क्या यह रिपोर्टिंग को विशेष समारोह में सीमित कर सकता है? कारण मैं पूछता हूं कि उत्पन्न "कॉल पेड़ रिपोर्ट" सैकड़ों एमबी के आसपास एक टेक्स्ट फ़ाइल है जो खोजना मुश्किल बनाती है। घटना टिप्पणी के लिए धन्यवाद ~ – Jim

+1

+1। –

+1

जिम: अधिकांश रिपोर्टों के साथ यह मूल समस्या है। मैंने रिपोर्ट के आउटपुट को फ़िल्टर करने के लिए डेल्फी में एक सरल उपयोगिता लिखी जो मुझे चाहिए, क्योंकि अधिकांश रिपोर्ट में जो भी मैं चाहता हूं वह नहीं है। इसके अलावा, यदि आपकी प्रोजेक्ट रनटाइम पैकेज का उपयोग करती है, तो एक विश्लेषण में शामिल किए जाने के लिए पैकेज-आधारित समाधान की सभी इकाइयों को प्राप्त करने के लिए, यदि आप इसे कभी नहीं बनाते हैं, तो एक मोनोलिथिक (कोई पैकेज) प्रोजेक्ट बनाने के लिए आवश्यक लगता है। इन सीमाओं के लिए कामकाज हैं। –

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

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