2008-09-19 69 views

回答

21

把下面的在你需要它:

System.Diagnostics.Debugger.Break(); 
3

可以使用System.Diagnostics.Debugger.Break()在一個特定的地方,打破..這可以像調試服務的情況有所幫助。

39

我也想檢查是否調試器附加 - 如果你打電話Debugger.Break當沒有調試器,它會提示用戶是否要附加一個。根據你想要的行爲,你可能需要調用Debugger.Break()僅當(或如果不)一個已經連接

using System.Diagnostics; 

//.... in the method: 

if(Debugger.IsAttached) //or if(!Debugger.IsAttached) 
{ 
    Debugger.Break(); 
} 
+0

這應該是公認的答案... – MemphiZ 2017-01-19 17:34:56

2

從@Philip裏克和@約翰的答案是微妙的不同。

約翰...

#if DEBUG 
    System.Diagnostics.Debugger.Break(); 
#endif 

只有當你設置的DEBUG條件編譯符號編制工作。

菲利普的回答......

if(Debugger.IsAttached) //or if(!Debugger.IsAttached) 
{ 
    Debugger.Break(); 
} 

將任何調試程序一起運行,所以你會給任何黑客有點恐懼的了。

也注意到SecurityException它可以拋出,所以不要讓代碼出現在野外。

另一個原因沒有來......

如果沒有附加調試器,用戶被詢問是否要附加一個 調試器。如果用戶說是,則調試器啓動。如果連接了調試器 ,調試器會發出用戶斷點事件的信號,調試器會暫停執行該過程,就像調試器已經命中了斷點一樣。

https://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break(v=vs.110).aspx