在C#中是否有相当于DebugBreak()
的语句?我希望在满足特定条件时调用调试器。
答案 0 :(得分:35)
您可以在System.Diagnostics
命名空间中使用Break
类的Debugger
方法:
Debugger.Break();
现在,您还可以通过不同的方式添加条件断点,而无需在项目中添加代码。
这当然只有在已通过调试器
运行程序时才有效您可以做的是首先在您希望调试器停止的位置添加常规断点,然后右键单击断点的红点:
然后编辑条件以满足您的需求:
然后在断点点内用小+表示符号:
答案 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)
System.Diagnostics.Debugger.Break();