2011-09-06 6 views
10

मुझे आश्चर्य है कि मुझे अन्य डीबग और डीबगर कार्यों को कॉल करने से पहले if(Debugger.IsAttached) पर कॉल करना चाहिए?क्या मुझे डीबगर की जांच करनी चाहिए। डीबगर से पहले संपर्क किया गया। ब्रेक या डीबग। राइटलाइन?

if(Debugger.IsAttached) { Debugger.Break(); } 

बनाम

Debugger.Break() // Without checking if Debugger is actually attached 
+0

दूसरा तरीका काम करता है, स्वयं को आजमाने के लिए काफी आसान है। जिट डीबगर विंडो विशेष रूप से सुंदर नहीं है और इसे प्रोग्राम कोड से बचा जाना चाहिए क्योंकि यह प्रोग्राम को दुर्घटनाग्रस्त करता है। –

उत्तर

14

यह कारण है कि आप Break() विधि कॉल कर रहे हैं पर निर्भर करता है। documentation के अनुसार: कोई डिबगर जुड़ा हुआ है

, तो उपयोगकर्ता के लिए कहा जाता है, तो वे एक डिबगर अनुलग्न करना चाहते हैं।

यदि आप उन उपयोगकर्ताओं को परेशान नहीं करना चाहते हैं जो वर्तमान में डिबगिंग नहीं कर रहे हैं, तो आपको पहले अटैचमेंट के लिए परीक्षण करना चाहिए। यदि आपको परवाह नहीं है (या वास्तव में प्रॉम्प्ट पसंद करेंगे) तो जांच न करें।

+0

आपको +1। मैंने पूरी तरह से सवाल को गलत समझा, और आपको यह सही मिला। – David

+0

तो यह उपयोगकर्ता को रिलीज मोड में चलाए जाने पर भी डीबगर संलग्न करने के लिए संकेत देगा? – flai

+2

@ जैको मुझे विश्वास है कि यह सही है। डिबगर्स को रिलीज-मोड संकलित प्रोग्राम से जोड़ा जा सकता है (हालांकि उनकी उपयोगिता कम हो गई है, क्योंकि रिलीज मोड .pdb फ़ाइलों या सहायक 'nop's) उत्पन्न नहीं करेगा। – dlev

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