提振.测试:如何自动附加调试器(GDB)

Boost.Test: How to automatically attach debugger (GDB)?

本文关键字:调试器 GDB 测试 何自动 提振      更新时间:2023-10-16

当为一个项目执行Boost测试时,我看到

Test command: ...
Environment variables:
 BOOST_TEST_AUTO_START_DBG=yes
 BOOST_TEST_BUILD_INFO=yes
 BOOST_TEST_CATCH_SYSTEM_ERRORS=yes
 BOOST_TEST_COLOR_OUTPUT=yes
 BOOST_TEST_DETECT_FP_EXCEPTIONS=yes
 BOOST_TEST_LOG_FORMAT=HRF
 BOOST_TEST_LOG_LEVEL=test_suite
 BOOST_TEST_LOG_SINK=stdout
 BOOST_TEST_RANDOM=1
 BOOST_TEST_REPORT_FORMAT=XML
 BOOST_TEST_REPORT_LEVEL=detailed
 BOOST_TEST_REPORT_SINK=...
 BOOST_TEST_RESULT_CODE=yes
...

确认auto_start_dbg选项设置正确的内容。然后,例如,发生以下失败:

unknown location(0): fatal error: in "...": boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::ios_base::failure[abi:cxx11]> >: failed opening file: No such file or directory: iostream error

我希望自动跳转到交互式调试器实例(在本例中是GDB), 捕获异常。

是我的期望错了还是我这边的配置错了?如何使用这个选项?

是我的期望错了还是我这边的配置错了?如何使用这个选项?

你的期望是错误的。此选项仅与信号相关。尝试解除NULL指针的引用,您将看到gdb自动启动。

编辑(2017/02/21)

我刚想到一个更好的例子。使用assert。使用起来方便多了。它会触发一个SIGABRT