断言调试器断言失败

Bog*_*ogi 13 c# debugging smart-device visual-studio-2008 assertion

当assertion为false并使用Visual Studio调试器运行应用程序时,有没有办法打破调试器.早些时候,当我调试Windows应用程序时,我会得到一个异常并且调试器会中断,但现在在智能设备上,断言失败窗口显示堆栈跟踪,但我还希望看到变量值等.

Bog*_*ogi 14

愚蠢的我,解决方案很简单.当窗口弹出时,按调试器中的暂停:)

  • 我想知道是否有任何方法可以自动执行此操作. (2认同)
  • 使用 Visual Studio 调试单元测试时,Debug.Assert 失败不会弹出窗口,就像测试框架已经删除了此功能。(我使用的是 VS 2013 Pro。) (2认同)

Dar*_*man 10

不确定VS 2008,但至少在2010年及以后,你可以进入Debug/Exceptions(Ctrl-Alt-E).单击"添加"按钮,选择"公共语言运行时例外",然后键入:

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
Run Code Online (Sandbox Code Playgroud)

并点击"确定".它现在将出现在列表中,请确保选中"已抛出"列中的复选框.现在,您将在任何断言失败时获得休息.


vc *_* 74 5

除了Vinay的解决方案,您还可以通过调用启动特定进程的调试器

Debugger.Break

在您的情况下,您可以在每次收听者收到失败消息时执行此操作.