मोड अनुरेखण में एक प्रोफाइलर का प्रयोग करें। फिर आप देखेंगे कि सब कुछ एक-दूसरे को कैसे कॉल करता है और जहां समय बिताया जाता है। वाणिज्यिक प्रोफाइलरों के अलावा मुफ्त भी हैं। प्रबंधित कोड के लिए वहाँ NP Profiler जो काफी अच्छा है।
यदि आप गहरे जाना चाहते हैं तो आप Windows Performance Toolkit का उपयोग कर सकते हैं जो आपको सभी धागे में पूर्ण जानकारी देता है और यदि आप जानना चाहते हैं तो एक दूसरे के साथ कैसे बातचीत करते हैं। केवल अंतर यह है कि आप अपने प्रबंधित फ्रेम तक कर्नेल से लेकर ढेर प्राप्त करते हैं।
यदि यह पर्याप्त आप साधन एक अनुरेखण पुस्तकालय (या तो स्वत: PostSharp साथ, ....) या मैन्युअल रूप से या प्रत्येक स्रोत फ़ाइल के लिए एक मैक्रो के साथ अपने कोड कर सकते हैं नहीं है। मैं जो काफी तेजी से और अत्यधिक विन्यास योग्य है एक छोटे से ट्रेसिंग पुस्तकालय बना दिया है। here देखें। अद्वितीय सुविधा के रूप में यह स्वचालित रूप से किसी भी फेंकने वाले अपवाद का पता लगा सकता है।
private void SomeOtherMethod()
{
using (Tracer t = new Tracer(myType, "SomeOtherMethod"))
{
FaultyMethod();
}
}
private void FaultyMethod()
{
throw new NotImplementedException("Hi this a fault");
}
यहाँ उत्पादन आता है:
18:57:46.665 03064/05180 <{{ > ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeMethod
18:57:46.668 03064/05180 <{{ > ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod
18:57:46.670 03064/05180 < }}< ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod Exception thrown: System.NotImplementedException: Hi this a fault
at ApiChange.IntegrationTests.Diagnostics.TracingTests.FaultyMethod()
at ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod()
at ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeMethod()
at ApiChange.IntegrationTests.Diagnostics.TracingTests.Demo_Show_Leaving_Trace_With_Exception()
18:57:46.670 03064/05180 < }}< ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeOtherMethod Duration 2ms 18:57:46.689 03064/05180 < }}< ApiChange.IntegrationTests.Diagnostics.TracingTests.SomeMethod Duration 24ms
स्रोत
2013-02-13 21:06:45
आप http://stackoverflow.com/questions/171970/how-can-i-find-the-method-that-called-the-current-method –
मैं मदद नहीं कर सकता पर एक दृष्टि डाली है लेकिन आश्चर्य है कि आप ऐसा क्यों चाहते हैं। अपवाद के मामले में आप स्टैकट्रैक देख सकते हैं। लेकिन आप सभी विधि कॉल का लॉग क्यों चाहते हैं? – comecme
एक बग है जिसे हम एक निश्चित बिंदु तक ट्रेस करने में सक्षम हैं, और उसके बाद नियंत्रण पैरेंट ऐप पर जाता है जो हमारा आवेदन नहीं है - इसलिए कोई स्रोत कोड नहीं है (इसके बाद कहीं भी ऐप प्रत्युत्तर देना बंद कर देता है)। इसके बाद हमारे ऐप में क्या कहा जाता है यह जानने के लिए हम इसे आजमा रहे हैं। –