当Debug.Assert失败时导致VS2010调试器中断

Debug.Assert的参数计算结果为false时,是否有任何方法导致Visual Studio 2010在调试期间中断?

例如:在我的代码中我有这样的行:

Debug.Assert(!double.IsInfinity(x));

如果我不调试,当断言失败时会弹出一个窗口。

但是当我调试时,断言会记录到“输出”窗格中,这很容易丢失; 没有弹出窗口,调试器不停止。 因此:当Debug.Assert失败时,有没有办法强制Visual Studio调试器中断?

(顺便说一句:我正在开发一个基于WPF的桌面应用程序,在Windows窗体应用程序中,行为似乎不一样:在此,调试器在Debug.AssertDebug.Assert 。)

编辑 :请让我澄清:我没有寻找替代Debug.Assert(),因为我的代码和外部代码是使用完全Debug.Assert()语句。 我正在寻找一种方式来导致Visual Studio调试器在Debugg.Assert失败时Debugg.Assert 。 (我认为早期的VS版本做到了这一点,并且在VS2010中改变了行为)。


如果通过调试您的意思是使用“Step Into”功能,请参阅此MS对该问题的回答。

http://connect.microsoft.com/VisualStudio/feedback/details/522995/system-diagnostics-debug-assert-doesnt-pop-up-messagebox-correctly-when-step-into-it-in-vs-2010-和2008年

在Assert语句中使用“Step Over”也可以解决这个问题(对我来说)。


您可以使用条件断点来处理这种行为,只需在要断开的行上设置断点,然后右键单击左侧的点并选择条件,在弹出式菜单中输入所需的条件(在您的情况下为双倍)。 IsInfinity(X))


使用Debugger.Break方法(在System.Diagnostics名称空间中)。 如果您在调试器中运行,这会中断执行。

链接地址: http://www.djcxy.com/p/27975.html

上一篇: Causing VS2010 debugger to break when Debug.Assert fails

下一篇: Why doesn't Visual Studio 2010 break on an unhandled exception?