2010-08-25 8 views
16

पर प्रत्येक पहुंच पर ब्रेकपॉइंट कैसे सेट करूं, तीसरे पक्ष के सिस्टम के साथ काम करते समय, विशेष रूप से बहुत कॉन्फ़िगर करने योग्य सिस्टम जो गतिशील रूप से प्रदाताओं, नियंत्रकों, घटकों को लोड करते हैं, मैं कभी-कभी बस जानना चाहता हूं कि कोई निश्चित वस्तु या कक्षा कब पहुंचा जा सकता है आम तौर पर, मैं अपने स्रोत (किसी उपद्रव, लेकिन यह काम करता है) पर किसी भी संभावित लाइन पर ब्रेकपॉइंट रखता है, लेकिन यदि स्रोत उपलब्ध नहीं है:मैं कक्षा

मैं विजुअल स्टूडियो 2010 अल्टीमेट को किसी भी और प्रत्येक एक्सेस को तोड़ने के लिए कैसे निर्देश दे सकता हूं किसी दिए गए वर्ग के लिए?

नोट: जहाँ तक मेरा अनुभव हो जाता है, यह नहीं आम तौर पर संभव है, लेकिन मैं इसे

उत्तर

7

पुष्टि की आप डीबग> नई ब्रेकप्वाइंट> ब्रेकप्वाइंट क्लिक कर सकते हैं समारोह पर देखना चाहते हैं। Ctrl-B आपको वहां सीधे लाता है। यह आपको एक विशिष्ट समारोह में तोड़ने की अनुमति देगा।

डिबगिंग के दौरान, आप ब्रेकपॉइंट्स-विंडो में देख सकते हैं कि विधि मिलती है और हिट (लाल राउंड आइकन) या नहीं (सर्कल आइकन के साथ सफेद, अक्षम ब्रेकपॉइंट के रूप में सफेद), सामान्य ब्रेकपॉइंट्स के साथ ही।

+1

धन्यवाद के लिए breakpoints जोड़ सकते हैं, कि, एक एकल विधि के लिए आसान है, वास्तव में, भले ही यह नहीं लोड नहीं हुआ लेकिन यह मुझे कक्षा में हर पहुंच के साथ मदद नहीं करता है, और न ही मैं 'ctor' या' cctor' के लिए ब्रेकपॉइंट सेट करने में सक्षम हूं (लेकिन शायद मुझे और प्रयोग करने की आवश्यकता है)। – Abel

+2

@Abel: 'Namespace.ClassName.ClassName' आज़माएं। – SLaks

+0

मैं इसे सभी प्रकार और विधियों के लिए काम नहीं कर सकता, लेकिन मैंने अभी रिफ्लेक्टर प्रोफेशनल (उम्र के लिए मुफ्त संस्करण का उपयोग किया) खरीदने का फैसला किया है और यह मुझे किसी भी लोड या संदर्भित असेंबली के परावर्तित कोड पर ब्रेकपॉइंट्स को डीबग और सेट करने की अनुमति देता है । – Abel

1

एक समय में (पूर्व VS2008) आप फ़ाइल में प्रत्येक पंक्ति पर एक ब्रेकपॉइंट सेट कर सकते हैं (ctrl-a) सेट ब्रेकपॉइंट (एफ 9) के बाद।

प्रत्येक विधि में प्रवेश पर केवल एक सेट करने के लिए, अगर मुझे सही ढंग से याद किया जाता है, तो एक मैक्रो। http://www.wintellect.com/CS/blogs/jrobbins/

[संपादित करें: Ctrl-A, F9 2010 या 2008 में काम नहीं करता है, तो यह किसी पुराने संस्करण होना चाहिए मैं इस से याद]

+0

कई लाइनों के साथ F9 को मारने से केवल वर्तमान लाइन पर ब्रेकपॉइंट सेट होता है। लेकिन मैकर बनाने के लिए आपका सुझाव अच्छा है। – Abel

+0

@Abel: .. और यह पहले से ही चयनित कोड में किसी अन्य ब्रेकपॉइंट को साफ़ करता है। यह कुछ पुराने संस्करण के बाद से एक बदलाव है (यह 2008 में काम नहीं करता है, तो शायद मैं 2005 को याद कर रहा हूं?)। मैं जवाब अपडेट करूंगा। – Richard

+0

धन्यवाद। और मैं 2010 का उपयोग करता हूं और वास्तव में इसे पहले के संस्करणों से याद नहीं कर सकता, लेकिन फिर, हमेशा ऐसी विशेषताएं होती हैं जिन्हें आप अगले संस्करण से पहले नहीं खोजते हैं। – Abel

1

मैं एक संभावित स्रोत के रूप में जॉन रॉबिंस 'ब्लॉग देखें इसके लिए सिर्फ एक विजुअल स्टूडियो 2010 एडिन बनाया। इस जाँच करें: http://weblogs.asp.net/uruit/archive/2011/08/04/visual-studio-2010-addin-setting-a-class-breakpoint.aspx

अद्यतन

यह प्रोजेक्ट अब Github पर रहता है। योगदान करने के लिए स्वतंत्र महसूस करें।

+0

दिलचस्प, टिप के लिए धन्यवाद, मैं एक नज़र रखूंगा! – Abel

+0

यह मेरे लिए काम नहीं करता है। ऐड-इन प्रबंधक सूची "BreakAll" है लेकिन डीबग मेनू में कोई नया मेनू आइटम नहीं है। Ctrl + D, Z (जैसा कि स्क्रीनशॉट में दिखाया गया है) या तो काम नहीं करता है। – Qwertie

+0

@Qwertie परियोजना के नवीनतम संस्करण के लिए गिथब रेपो की जांच करें। ज्ञात मुद्दों की एक सूची भी है जहां आप जांच सकते हैं। – alf

10

सबसे सुंदर नहीं है, लेकिन आप Ctrl +एफpublic तो आप F9 [सेट ब्रेकप्वाइंट] तो F3 के बीच स्पैम कर सकते हैं अगर में हर सार्वजनिक प्रवेश बिंदु पर एक ब्रेकपाइंट सेट करने के लिए [अगले लगता है] कक्षा।

तुम भी protected और internal प्रवेश द्वारों, और किसी भी स्पष्ट इंटरफेस कार्यान्वयन (घोषणाओं public की जरूरत नहीं है कि)

+0

अच्छी चाल :) @carlwalsh – Divya