2008-09-19 73 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