2011-04-04 33 views
11

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

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

जो मैं प्राप्त करने का प्रयास कर रहा हूं वह एक विशिष्ट कॉलर से कॉल काटना है।

उत्तर

16

सही ब्रेकप्वाइंट क्लिक करें, चुनें "स्थिति" और कुछ इस तरह का उपयोग करें:

new System.Diagnostics.StackTrace().ToString().Contains("YourMethodName") 
+0

हो जाएगा ताकि स्ट्रिंग पूरे स्टैक ट्रेस, यह काफी लालची बना रही है। क्या पिछले 5 कॉलर्स को फिर से शुरू करना और उनके नामों का परीक्षण करना संभव है जबकि कोड को "हालत ..." स्निपेट में अभी भी प्लग करना है? –

+0

जैसा कि शर्त एक लाइनर होनी चाहिए, आप 'GetFrame (अनुक्रमणिका)' का उपयोग '||' के साथ एक साथ हो सकते हैं, लेकिन इससे यह कम प्रभावी हो जाएगा। –

+0

इसके अलावा, आप इस स्थिति में लैम्बडा का उपयोग नहीं कर सकते हैं। –

4

StackTrace class आप देना चाहिए कि तुम क्या जरूरत है।

StackTrace stackTrace = new StackTrace();   
StackFrame[] stackFrames = stackTrace.GetFrames(); 
0

अस्वीकरण - मैं OzCode

के साथ संबद्ध कर रहा हूँ सशर्त breakpoints लेखन कठिन और त्रुटियों की संभावना है। एक डिबगिंग ऐड-ऑन है जो OzCode को कॉल किए गए सशर्त ब्रेकपॉइंट्स का उपयोग करता है।

Adding conditional breakpoint

Editing conditional breakpoint

+1

हा" से प्रतिस्थापित करें! हाँ, लेकिन दुर्भाग्य से मैं पहले से ही ओज़कोड का उपयोग करता हूं ;-) इसके लिए समर्थन ने वीएस 2015 में थोड़ा सुधार किया है, हालांकि मुझे अभी तक इसके साथ खेलने का मौका नहीं मिला है। –

+0

क्या आपका मतलब वीएस2015 या नया ओज़कोड (v2.0) है? मैं पूछ रहा हूं क्योंकि नए संस्करण में सशर्त ब्रेकपॉइंट्स के लिए बेहतर समर्थन है। –

+1

मुझे बीटा ग्राहक या कुछ होने के लिए 2.0 में मुफ्त अपग्रेड मिला है, लेकिन मुझे ऐसा करने के काम के प्रकार के कारण अभी तक बहुत अधिक गैर मानक स्थितियों में इसका उपयोग नहीं करना है (स्पर्श लकड़ी) गहरी गोताखोर डीबगिंग नहीं है। –

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