DebugBreak()在C#中等效

在C#中有任何等同于DebugBreak()的语句。 我希望在满足特定条件时调用调试器。

请帮忙

您可以在System.Diagnostics命名空间中使用Debugger类的Break方法:

Debugger.Break(); 

现在,您还可以通过不同的方式添加条件断点,而无需在项目中添加代码。

这当然只有在已经通过调试器运行程序时才有效

您可以做的是首先在您希望调试器停止的位置添加常规断点,然后右键单击断点的红点:

断点右键菜单

然后编辑条件以满足您的需求:

断点条件对话框

然后用断点点内的小+表示符号:

条件断点

关于其他答案,我更喜欢使用Debugger.Launch()。 如果应用程序尚未在调试器中运行,则Launch()将调用调试器对话框,允许您将Visual Studio(或其他调试器)附加到该进程。 但是,如果您已经在调试,它将直接通过Debugger.Launch()调用。 另一方面,Break()将充当断点 – 每次碰到该点时都会断开(如果尚未附加进程,则调用调试器对话框)。

请务必小心不要在代码中留下任何一个语句。 使用Debugger调用生产代码可以暂停您的应用程序或创建非常难以追踪的错误。 (上个月的糟糕经历)

  System.Diagnostics.Debugger.Break(); //Lauches the JIT debug window System.Diagnostics.Debugger.Launch(); 

这在调试服务时特别有用,因为您获得了Just In Time调试器窗口,然后可以选择visual studio窗口来调试服务

也许Debugger.Break

 System.Diagnostics.Debugger.Break(); 

MSDN上的这篇文章提供了对这个问题的见解。 http://blogs.msdn.com/b/calvin_hsia/archive/2006/08/25/724572.aspx