35

मैं विजुअल स्टूडियो 2010 का उपयोग कर रहा हूं, और मुझे पता है कि यह सुविधा सी ++ में उपलब्ध है।क्या मैं ब्रेकपॉइंट सेट कर सकता हूं जब चर को .NET में एक विशिष्ट मान प्राप्त हो रहा है?

मुझे कुछ कोड डीबग करने की आवश्यकता है, जो एक चर को कई मानों में बदल देता है। जब मैं एक विशिष्ट मान प्राप्त कर रहा हूं, तो मैं एक विशिष्ट मामले में कोड डीबग करना चाहता हूं। मुझे पता है कि मैं if(var == value) जोड़ सकता हूं, लेकिन क्या ऐसा करने का कोई शानदार तरीका है?

एक और सवाल, क्या मैं एक ब्रेकपॉइंट सेट कर सकता हूं जब एक चर सामान्य रूप से बदल जाता है?

उत्तर

71

यह निश्चित रूप से एक शर्त सेट करने के लिए संभव है एक निश्चित मूल्य प्राप्त करने वाले चर की तरह। इसे ब्रेकपॉइंट की स्थिति के रूप में जाना जाता है। एक बनाने के लिए, निम्न कार्य करें।

  • बिंदु पर एक को तोड़ने बिंदु सेट चर की तरह तोड़ बिंदु पर
  • राइट क्लिक करें बदलता है और "स्थिति"
  • सशर्त में टाइप करें "theNewValue == 42"

अब ब्रेकपॉइंट केवल तभी होगा जब आपका सशर्त मूल्यांकन सही होगा।

दूसरी वस्तु जिसे आपने पूछा था, किसी भी कारण के लिए एक चर मूल्य परिवर्तन को तोड़ने के बाद, डेटा ब्रेकपॉइंट के रूप में जाना जाता है। ये केवल सी ++ कोड के लिए उपलब्ध हैं। यह सी #, VB.NET या किसी अन्य प्रबंधित भाषा में कोई विकल्प नहीं है।

+0

के लिए जांच करता है क्या आप जानते हैं कि प्रबंधित भाषा में डेटा ब्रेक पॉइंट क्यों उपलब्ध नहीं है? – Delashmate

+3

@ डेलशमेट यह सीएलआर के डिबगिंग इंफ्रास्ट्रक्चर में एक सीमा है। विजुअल स्टूडियो के हाथ अनिवार्य रूप से बंधे होते हैं जब तक सीएलआर – JaredPar

+0

क्षमता प्रदान करता है ठीक है, मुझे उम्मीद है कि यह इतना जटिल सवाल नहीं है, सीएलआर इस विकल्प का समर्थन क्यों नहीं करता? – Delashmate

4

जब तक आप एक्सप्रेस के अलावा विजुअल स्टूडियो संस्करण का उपयोग कर रहे हैं, तो आप इसे breakpoint condition का उपयोग करके सी # में प्राप्त कर सकते हैं।

ब्रेकप्वाइंट स्थिति संवाद बॉक्स में,, स्थिति बॉक्स में एक वैध अभिव्यक्ति डालने ऐसे myLocalVariable> 1

और

... चयन के रूप में बदल दिया अगर आप तोड़ना चाहते हैं जब अभिव्यक्ति का मूल्य बदल गया है।

को प्राप्त करने के लिए विकल्प, ब्रेकप्वाइंट विंडो में अपने ब्रेकप्वाइंट राइट क्लिक करें और स्थिति ... चुनें, फिर नीचे स्क्रीनशॉट की जाँच बदल दिया।

Has Changed option for breakpoint conditions

+0

ठीक है, अब मैं समझता हूँ, जब चर सामान्य रूप में बदल गया अधिसूचना प्राप्त करने के लिए है के लिए मैं क्या देखा था, .. डेटा को तोड़ने बिंदु बनाने के लिए है कि जिस तरह से यह अधिक सामान्य है इसका मतलब है .. – Delashmate

+0

आपके पास एक टाइमर हो सकता है जो इस – beppe9000

3

F9 के साथ एक ब्रेकपाइंट जोड़ें - सही यह क्लिक करें और चुनें "Condition..." - अब आप एक बूलियन शर्त जोड़ सकते हैं और अगर उस हालत सही का आकलन ब्रेकप्वाइंट केवल हिट हो जाएगा।

0

आप इन दोनों चीजों को कर सकते हैं।

  1. वीएस में ब्रेकपॉइंट सेट करें। मार्जिन में लाल बिंदु पर राइट क्लिक करें और हालत जोड़ें चुनें। वहां आप var==value कह सकते हैं और "सत्य है" का चयन करें।
  2. आप शायद ऊपर दिए गए संवाद में "बदल गया है" विकल्प के साथ इसे प्राप्त कर सकते हैं।
3

यह आपके ब्रेकपॉइंट के दायरे पर निर्भर करता है। यदि चर स्थानीय नहीं है या स्थैतिक नहीं है तो आप सक्षम नहीं होंगे।

, एक ब्रेकपाइंट की शर्त सेट करने के लिए सही इसे क्लिक करें और आप इस स्क्रीन मिलना चाहिए:

Enter image description here

उठाओ स्थिति ...

2

आप सशर्त ब्रेकपॉइंट्स का उपयोग कर सकते हैं। मुझे पता है कि आपका प्रश्न वीएस -2010 के लिए विशिष्ट था, लेकिन ध्यान रखें कि वीएस2012 से, आपको विजुअल बेसिक में सशर्त ब्रेकपॉइंट्स का उपयोग करने के लिए प्रबंधित संगतता मोड पर स्विच करना होगा। क्यों और कैसे यहाँ वर्णित है:

switching-to-managed-compatibility-mode-in-visual-studio-2013

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

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