2011-01-19 111 views

回答

27

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

Debugger.Break(); 

现在,也就是不同您可以添加条件断点,而无需将代码添加到项目中。

当然,这只有在已经通过调试运行程序的工作原理

你能做的就是先在您希望您的调试器停止的位置添加一个普通断点什么,然后用鼠标右键单击红色点的断点:

breakpoint right-click menu

,然后编辑状态,以满足您的需求:

breakpoint condition dialog

这将被用小+符号断点点内:

conditional breakpoint

+0

你不能在复杂的条件下(使用条件子句)声明一个断点。 – 2011-01-19 10:02:58

+1

Debugger.Break的好处在于,即使尚未附加调试器,它也能正常工作。 – CodesInChaos 2011-01-19 10:04:20

+0

@Artur复杂性有限,是的,我只是添加它来完成答案。对于特定问题的正确答案仍然是`Debugger.Break();` – 2011-01-19 10:31:29

4
  System.Diagnostics.Debugger.Break(); 

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

调试服务时,你得到的只是在时间调试窗口,可这是特别有用然后选择visual studio窗口来调试服务

8

关于其他答案,我更喜欢使用Debugger.Launch()。如果应用程序尚未在调试器中运行,则Launch()将调用调试器对话框,以允许您将Visual Studio(或其他调试器)附加到该过程。但是,如果您已经在进行调试,它将在Debugger.Launch()调用之后启动。另一方面,Break()将作为一个断点 - 每次遇到该断点时都会中断(如果进程尚未连接,则调用调试器对话框)。

是非常小心不要在代码中留下任何语句。使用调试器发送代码调用生产可以停止您的应用程序或创建非常难以追查错误。 (上个月糟糕的经验)