调试 c++ 时禁用异常处理使用Google测试的项目

发布于 2025-01-05 19:31:56 字数 336 浏览 0 评论 0原文

我有我的(本机 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耀眼的星火 2025-01-12 19:31:56

答案位于“高级”页面部分,名为“禁用捕获测试引发的异常"。您所要做的就是使用 --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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文