首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果测试运行终止,如何获得gcov .gcda /覆盖率?

如果测试运行终止,如何获得gcov .gcda /覆盖率?
EN

Stack Overflow用户
提问于 2021-07-27 19:15:05
回答 1查看 137关注 0票数 2

如果测试运行是不定式的,或者测试运行时间很长,并且我想获得临时结果,那么如何获得.gcda (gcov)/覆盖率?例如,我对执行1分钟后的测试覆盖率感兴趣。

gcc -I${PWD} -fprofile-arcs -O0 --coverage program.c -o test-coverage $ ./test-coverage Terminated: 15

如果我终止进程,那么就不会创建.gcda。是否有任何方法在进程终止之前恢复或获取临时值?

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 06:47:28

您需要修改程序,以便刷新覆盖数据。

下面是gcc编译器和gcov。

代码语言:javascript
复制
// Reference: https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html
// pre 11 gcc : extern "C" void __gcov_flush(void);
extern "C" void __gcov_dump(void);

[[noreturn]] void terminateHandler()
{
  __gcov_dump();
  std::abort();
}

main()

代码语言:javascript
复制
  std::set_terminate(&terminateHandler);

考虑到您必须为覆盖率构建,您可以有条件地编译上述代码。

您可能还需要链接到gcov库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68550611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档