C#中的DebugBreak()等效

时间:2011-01-19 09:48:06

标签: c# .net debugging

在C#中是否有相当于DebugBreak()的语句?我希望在满足特定条件时调用调试器。

4 个答案:

答案 0 :(得分:35)

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

Debugger.Break();

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

这当然只有在已通过调试器

运行程序时才有效

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

breakpoint right-click menu

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

breakpoint condition dialog

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

conditional breakpoint

答案 1 :(得分:14)

关于其他答案,我更喜欢使用Debugger.Launch()

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

小心不要在代码中留下任何一个语句。发送带有Debugger调用代码的代码可以暂停您的应用程序或创建非常难以追踪的错误(上个月的糟糕体验)。

答案 2 :(得分:5)

System.Diagnostics.Debugger.Break();

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

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

答案 3 :(得分:2)

也许Debugger.Break

System.Diagnostics.Debugger.Break();