दिलचस्प पोस्ट
ऑरेलिया के साथ संपत्ति में परिवर्तन की सदस्यता क्रॉस-डोमेन एजेएक्स एक्स-अनुरोधित- हेडर के साथ नहीं भेजता है नेविगेशनदृश्य में विस्तार योग्य LISTView को जोड़ना एक datetime मान (SQL सर्वर) का समय भाग कैसे निकालना है? "कॉन्स्ट टी एंड आर्ग" बनाम "टी अरग" Android के लिए Google डिस्क \ डॉक्स एपीआई मैं एआरएम लिनक्स एंट्री पॉइंट को कैसे प्राप्त करूं जब यह असंप्रेसे में विफल हो जाता है? ओपनग्लैंड में विजुअल सी ++ का उपयोग करके एक 3D क्षेत्र बनाना क्यों करता है '.sort ()' पायथन में 'कोई नहीं' सूची बनती है? मैं एक पायथन प्रोग्राम से कैसे एक EXE फ़ाइल बना सकता हूँ? Matplotlib में, अंजीर का मतलब क्या होता है। एडी_एस्यूबप्लॉट (111)? जावा में अच्छी तरह से बनाई गई XML को कैसे पढ़ें, लेकिन स्कीमा को छोड़ दें? जावास्क्रिप्ट में "निर्यात डिफ़ॉल्ट" क्या है? कस्टम सदस्यताप्रदाता को .NET 4.0 में व्यावहारिक Zend_ACL + Zend_Auth कार्यान्वयन और सर्वोत्तम अभ्यास

किसी भी अपवाद के साथ .net में मौजूदा स्टैक ट्रेस कैसे मुद्रित करें?

मेरे पास एक नियमित सी # कोड है मेरे पास कोई अपवाद नहीं है । मैं डिबगिंग उद्देश्य के लिए वर्तमान स्टैक ट्रेस को प्रोग्रामेटिक रूप से लॉग इन करना चाहता हूं। उदाहरण:

public void executeMethod() { logStackTrace(); method(); } 

वेब के समाधान से एकत्रित समाधान "किसी भी अपवाद के साथ .net में मौजूदा स्टैक ट्रेस कैसे मुद्रित करें?"

System.Diagnostics पर एक नज़र डालें। System.Diagnostics नामस्थान वहाँ बहुत सारे सामान!

 System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace(); 

हुड के नीचे चलने के बारे में सीखने के लिए यह वास्तव में अच्छा है

मैं सुझाता हूं कि आपके पास लॉगिंग समाधान (जैसे एनओलॉग, लॉज 4नेट या माइक्रोसॉफ्ट के पैटर्न और प्रथाओं एंटरप्राइज लाइब्रेरी) पर एक नजर है जो आपके उद्देश्यों को हासिल कर सकता है और फिर कुछ शुभकामनाएं मेट!

System.Diagnostics.StackTrace लिए एक विकल्प System.Environment.StackTrace का उपयोग करना है जो स्टैक्सट्र्रेस का स्ट्रिंग-प्रतिनिधित्व देता है।

दृश्य स्टूडियो में $CALLER और $CALLSTACK डीबगिंग चर का उपयोग करने के लिए एक अन्य उपयोगी विकल्प है क्योंकि यह एप्लिकेशन को पुनर्निर्माण के बिना रन-टाइम सक्षम किया जा सकता है।

इसे करने के दो तरीके हैं। System.Diagnostics.StackTrace() आपको वर्तमान थ्रेड के लिए एक स्टैक ट्रेस देगा। अगर आपके पास कोई Thread उदाहरण का कोई संदर्भ है, तो आप StackTrace() के अतिभारित संस्करण के माध्यम से इसके लिए स्टैक ट्रेस प्राप्त कर सकते हैं।

आप स्टैक ओवरफ्लो प्रश्न की जांच भी कर सकते हैं कैसे गैर-वर्तमान थ्रेड का स्टैकट्र्रेस प्राप्त करें?

आप कोड को संशोधित किए बिना भी दृश्य स्टूडियो डीबगर में ऐसा कर सकते हैं।

  1. एक ब्रेकपॉइंट बनाएं जहां आप स्टैक ट्रेस देखना चाहते हैं।
  2. ब्रेकपॉइंट को राइट-क्लिक करें और वीएस2015 में "एक्शन …" का चयन करें VS2010 में, "जब हिट …" का चयन करें, फिर "एक संदेश प्रिंट करें" सक्षम करें।
  3. सुनिश्चित करें कि "निष्पादन जारी रखें" चुना गया है
  4. कुछ पाठ में टाइप करें जिसे आप प्रिंट करना चाहते हैं।
  5. जहाँ भी आप स्टैक ट्रेस देखना चाहते हैं वहां $ कॉलस्टैट जोड़ें
  6. डीबगर में प्रोग्राम चलाएं

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