当Assert为false并使用Visual Studio调试器运行应用程序时,是否有方法中断调试器。早些时候,当我调试Windows应用程序时,我会得到一个异常,调试器会中断,但现在在智能设备上,一个Assert失败的窗口显示堆栈跟踪,但我也想看到变量值等。
vecaoik11#
愚蠢的我,解决办法很简单。当窗口弹出时,在调试器中按暂停:)
h9vpoimq2#
不确定VS 2008,但至少在2010年及以后,您可以转到调试/异常(Ctrl-Alt-E)。单击“添加”按钮,选择“公共语言运行库异常”,然后键入:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
字符串然后点击“OK”它现在将出现在列表中,请确保您选中“抛出”列中的复选框。现在,您将在任何Assert失败时获得休息。更新:截图来自VS 2017 x1c 0d1x
blmhpbnm3#
除了Vinay的解决方案之外,还可以通过调用Debugger.Break在您的例子中,可以在侦听器每次收到失败消息时执行此操作。
pdtvr36n4#
看起来你可以在Assert失败时附加调试器来查看其他细节-请参阅这篇文章:它相当过时,但也许仍然适用。
z4bn682m5#
对于原生单元测试项目(C++),我们可以遵循类似于@Darrel霍夫曼的answer中的方法。转到Debug->Windows->Exception Settings。x1c 0d1x的数据在Win32 Exceptions下添加新的例外。
Debug->Windows->Exception Settings
Win32 Exceptions
的对于错误代码,输入0xE3530001,并给予一些说明。
0xE3530001
的
现在,从测试资源管理器中选择Debug,而不是Run。x1c4d 1x的或者,即使您选择<All Win32 Exceptions not in this list>,它也会工作。
Debug
Run
<All Win32 Exceptions not in this list>
型
Visual Studio现在将在本机单元测试Assert***(Assert::IsTrue、Assert::IsFalse等)******失败***时中断。
注意,默认情况下,在Visual Studio异常设置中启用了对0xc0000420 Assertion failed异常的中断,但是当我们的单元测试Assert失败时,它不会导致调试器中断,因此上述步骤是必要的。
0xc0000420 Assertion failed
5条答案
按热度按时间vecaoik11#
愚蠢的我,解决办法很简单。当窗口弹出时,在调试器中按暂停:)
h9vpoimq2#
不确定VS 2008,但至少在2010年及以后,您可以转到调试/异常(Ctrl-Alt-E)。单击“添加”按钮,选择“公共语言运行库异常”,然后键入:
字符串
然后点击“OK”它现在将出现在列表中,请确保您选中“抛出”列中的复选框。现在,您将在任何Assert失败时获得休息。
更新:截图来自VS 2017 x1c 0d1x
blmhpbnm3#
除了Vinay的解决方案之外,还可以通过调用
Debugger.Break
在您的例子中,可以在侦听器每次收到失败消息时执行此操作。
pdtvr36n4#
看起来你可以在Assert失败时附加调试器来查看其他细节-请参阅这篇文章:它相当过时,但也许仍然适用。
z4bn682m5#
对于原生单元测试项目(C++),我们可以遵循类似于@Darrel霍夫曼的answer中的方法。
转到
Debug->Windows->Exception Settings
。x1c 0d1x的数据
在
Win32 Exceptions
下添加新的例外。的
对于错误代码,输入
0xE3530001
,并给予一些说明。的
现在,从测试资源管理器中选择
Debug
,而不是Run
。x1c4d 1x的
或者,即使您选择
<All Win32 Exceptions not in this list>
,它也会工作。型
Visual Studio现在将在本机单元测试Assert***(Assert::IsTrue、Assert::IsFalse等)******失败***时中断。
注意,默认情况下,在Visual Studio异常设置中启用了对
0xc0000420 Assertion failed
异常的中断,但是当我们的单元测试Assert失败时,它不会导致调试器中断,因此上述步骤是必要的。型
参考文献: