调试 c++ 时禁用异常处理使用Google测试的项目
我有我的(本机 C++)DLL 项目和基于 Google Test 的相应测试 EXE 项目。当通过这个 EXE 调试我的 DLL 时,我遇到了由 Google Test 自动处理的异常。因此,如果我的 DLL 在调试期间引发未处理的异常,我希望看到来自 Visual Studio 的错误消息,并且在代码引发异常后调试会话暂停。相反,我在 gtest.cc 中触发了断点。如果我禁用 --gtest_break_on_failure
标志,我将不会收到任何中断。
我在 Google 测试文档中没有找到这样的选项。我错过了吗?我不想在调试设置中检查“抛出时中断”标志以查找不同的异常,因为我只对未处理的异常感兴趣。
I have my (native C++) DLL project and a corresponding test EXE project based on Google Test. While debugging my DLL via this EXE I have exceptions automatically handled by Google Test. So if my DLL throws an unhandled exception during debug, I expect to see error message from Visual Studio with debug session paused after the code caused exception. Instead, I have breakpoint triggered in gtest.cc. And if I disable --gtest_break_on_failure
flag I will receive no breaks at all.
I found no such option in Google Test documentation. Have I missed it? I don't want to check "break when thrown" flag for different exceptions in Debug settings, because I'm only interested in unhandled ones.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
答案位于“高级”页面部分,名为“禁用捕获测试引发的异常"。您所要做的就是使用
--gtest_catch_exceptions=0
调用您的二进制文件。The answer is in the Advanced page section called "Disabling Catching Test-Thrown Exceptions". What you have to do is invoke your binary with
--gtest_catch_exceptions=0
.