如何在C#中使用debugbreak()?

时间:2008-09-19 18:18:01

标签: c# debugging debugbreak

什么是语法以及需要导入哪个命名空间/类?如果可能,请给我示例代码。这将是非常有帮助的。

5 个答案:

答案 0 :(得分:41)

我还想查看是否附加了调试器 - 如果在没有调试器的情况下调用Debugger.Break,它会提示用户是否要附加调试器。根据您想要的行为,您可能只想在已经连接的情况下调用Debugger.Break()

using System.Diagnostics;

//.... in the method:

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

答案 1 :(得分:21)

将以下内容放在您需要的地方:

System.Diagnostics.Debugger.Break();

答案 2 :(得分:8)

http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx

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

答案 3 :(得分:3)

您可以使用System.Diagnostics.Debugger.Break()在特定位置中断...这可以在调试服务等情况下提供帮助。

答案 4 :(得分:2)

来自@Philip Rieck和@John的答案略有不同。

约翰的......

#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