32

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

4

5 回答 5

44

我还想检查是否附加了调试器 - 如果在没有调试器时调用 Debugger.Break,它会提示用户是否要附加一个。根据您想要的行为,您可能希望仅在(或如果没有)已附加一个时才调用 Debugger.Break()

using System.Diagnostics;

//.... in the method:

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}
于 2008-09-19T21:01:38.520 回答
23

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

System.Diagnostics.Debugger.Break();
于 2008-09-19T18:20:22.353 回答
8

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.debugger.break#System_Diagnostics_Debugger_Break

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif
于 2008-09-19T18:20:58.640 回答
3

你可以System.Diagnostics.Debugger.Break()用来在特定的地方休息。这可以在调试服务等情况下提供帮助。

于 2008-09-19T18:20:23.913 回答
3

@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

于 2016-03-21T09:39:35.633 回答