2012-01-25 14 views
9

विजुअल स्टूडियो ब्रेकपॉइंट हिट करते समय कॉल स्टैक प्रिंट कर सकता है, और शर्तों को पूरा होने पर रोक सकता है, क्या इसे गठबंधन करने के लिए कोई तरीका है और जब किसी अन्य चयनित व्यक्ति से फ़ंक्शन कहा जाता है, तो उसे अनदेखा करें, और सभी को अनदेखा करें अन्य कॉल?स्टैक स्टेटस पर सशर्त स्टूडियो ब्रेकपॉइंट

उत्तर

4

मेरा मानना ​​है कि ऐसा करने का एकमात्र तरीका मैक्रो के साथ है। राइट अपने ब्रेकप्वाइंट, चुनें "जब मारो ..", चुनें "कोई मैक्रो चलाएँ" क्लिक करें, और एक मैक्रो ऐसा ही कुछ हो जाता है करने के लिए यह बात:

Sub ContinueUnlessCalledFromRightContext() 
    For Each frame As EnvDTE.StackFrame In DTE.Debugger.CurrentThread.StackFrames 
     If (frame.FunctionName.Contains("SomeOtherMethodsName") Then Exit Function 
    Next 

    DTE.Debugger.Go() ` we weren't called from the right context so continue execution. 
End Sub 

ऊपर आधा छद्म कोड है, मैंने वास्तव में इसका परीक्षण नहीं किया था, लेकिन कुछ मामूली संपादन के साथ काम करना चाहिए।

ध्यान दें कि ब्रेकपॉइंट कई बार मारा जाता है, तो यह नरक के रूप में धीमा हो जाएगा, क्योंकि ब्रेकपॉइंट्स से मैक्रोज़ चलाना स्वाभाविक रूप से बहुत धीमा है।

BTW, आप नेट के बारे में पूछ रहे थे, तो/सी # यह होता गया है बहुत आसान हो गया है, तो आप सिर्फ

new System.Diagnostics.StackTrace().ToString().Contains("SomeOtherMethodsName") 

पर एक सशर्त ब्रेकप्वाइंट बना कर सकती थीं ... और यह के साथ किया जा।

+2

भविष्य से नोट: [मैक्रोज़ विजुअल स्टूडियो के मौजूदा संस्करणों में मौजूद नहीं है] (https://social.msdn.microsoft.com/Forums/vstudio/en-US/d8410838-085b-4647-8c42-e31b669c9f11/macros -इन-विजुअल स्टूडियो-11-डेवलपर पूर्वावलोकन? मंच = VSX)। मैं वीएस2013 और बाद में ओपी से पूछे जाने वाले किसी भी सुझाव के लिए खुला हूं। –

3

सुनिश्चित नहीं हैं, लेकिन आप या तो छनन या शर्तों के साथ कर सकता है, हालांकि यह आसान हो सकता है सिर्फ बुला प्रक्रिया पर ब्रेकप्वाइंट डाल करने के बजाय

यह एक अच्छा संसाधन है: Mastering Debugging in Visual Studio 2010 - A Beginner's Guide

+0

कॉलर पर सेटिंग ब्रेकपॉइंट मेरे मामले में सुविधाजनक नहीं है, मुझे कई ब्रेकपॉइंट्स सेट करना होगा, और मैं एक और स्टैक स्तर पर भी शर्त बनाना चाहता हूं। – Vasaka

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