2011-03-24 16 views
5

आप जानते हैं कि आप ब्रेकपॉइंट पर पीले तीर पर क्लिक कैसे कर सकते हैं और कोड की रेखाओं के निष्पादन को छोड़ने के लिए इसे नीचे खींच सकते हैं? खैर, क्या "जब हिट" मैक्रो (या कुछ समान) बनाना संभव है जो ब्रेकपॉइंट वाली रेखा के निष्पादन को छोड़ देता है?डिबगिंग - ब्रेकपॉइंट के साथ कोड छोड़ें

तो बजाय लेखन कोड

if(!Debugging) 
    Response.Redirect("LoginFail.aspx"); 

जैसे मैं Response.Redirect() लाइन पर एक ब्रेकपाइंट और बैठ सकता है "जब हिट" यह छोड़ देगा।

+0

संभावित डुप्लिकेट [क्या मेरे पास विजुअलस्टूडियो में हिट-पॉइंट है जो लाइनों को छोड़ देता है?] (Http://stackoverflow.com/questions/455290/can-i-have-a-hit-point-in-visualstudio- वह-skips-lines) – heavyd

उत्तर

6

मुझे ऐसा करने के तरीके में बेक्ड नहीं पता है। हालांकि आप एक मैक्रो चलाने के लिए ब्रेकपॉइंट के "जब हिट" विकल्प सेट कर सकते हैं। एक मैक्रो लिखना मुश्किल नहीं होना चाहिए जो वर्तमान रेखा प्राप्त करता है, और फिर अगली डीबगर लाइन सेट करता है। आप शायद Debugger.SetNextStatement विधि को देखना चाहेंगे।

इस तरह एक मैक्रो यह करना चाहिए:

Public Sub SkipNextLine() 
    ActiveDocument().Selection.LineDown() 
    DTE.ExecuteCommand("Debug.SetNextStatement") 
End Sub 
+1

यह बहुत अच्छा था! दुर्भाग्यवश, मैक्रोज़ जहां विजुअल स्टूडियो 2012 से हटा दिया गया। –

0

कोई रास्ता नहीं मैं के बारे में पता एक ब्रेकपाइंट के साथ ऐसा करना नहीं है, लेकिन आप संकलक निर्देशों का उपयोग कोड को छोड़ कर सकते हैं

#if (DEBUG) 
//this code is skipped in debug mode 
#endif 
0

प्रयास करें:

#if DEBUG 
Response.Redirect("LoginFail.aspx"); 
#endif 

वाकई डीबग निरंतर में जाँच किया हुआ है आपके निर्माण गुण।

0

हाँ, आप सीधे एक tracepoint का उपयोग कर ऐसा कर सकते हैं।

  1. वापसी कथन का पता लगाएं या अंतिम एक बार उस पर तोड़ कर समारोह के तल पर घुंघराले ब्रेस को बंद करने, और फिर EIP को देखकर या तो रजिस्टर विंडो में रजिस्टर या "@eip के लिए एक घड़ी जोड़ने "।
  2. उस लाइन पर एक ट्रेसपॉइंट जोड़ें जिसे आप से कूदना चाहते हैं। याद रखें कि लाइन पर कुछ भी निष्पादित होने से पहले कूद जाएगा। tracepoint की सामग्री

चरण 1 से पते का उपयोग कर भी https://stackoverflow.com/a/14695736/301729

0

देखें संकलक निर्देशों या किसी अन्य कोड में तर्क जोड़ने के लिए आवश्यकता होती है के उपयोग के साथ सहमत {@eip = address} होना चाहिए। हालांकि, यह भी समझते हैं कि डीबग किए गए कोड को संपादित करना हमेशा एक विकल्प नहीं होता है (उदाहरण के लिए कोड का स्वामित्व न हो, इसका मतलब यह हो सकता है कि इसे बनाने के लिए आवश्यक सभी संसाधन नहीं हैं)।

यदि यह आपका मामला है, तो मुझे डर है कि अपना खुद का मैक्रो लिखना या वीएस के लिए प्रतीक्षा करना एक अंतर्निहित समकक्ष है जो आपके एकमात्र विकल्प हैं।

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