如何使用GCOV获得正确的代码覆盖率?由于它一直显示0%被覆盖

时间:2019-10-07 23:40:21

标签: c++ gcc gcov

我正在尝试在大型代码库的子集上进行代码覆盖,目前正在尝试 gcov

  • 具有带有以下编译标志 -fprofile-arcs -ftest-coverage -lgcov 链接标志的已编译代码库子集。所有 .gcno 文件均已创建。

  • 现在,当我运行代码文件时,假设 A.cpp (不是直接通过终端,而是通过其他文件来调用该文件的功能),我发现有一些不确定的行为.gcda 文件。

  • 它不会在每次运行时都进行更新(已检查 .gcda 文件的统计信息),但在某些运行中会得到更新。 运行gcov后,它会为 A.cpp 以及所有其他 .cpp 文件提供 0%覆盖率
  • 我已验证脚本确实可以运行,因为获得的结果只有通过 A.cpp 中提供的功能才能获得。

已检查 gcov gcc 的版本,我正在使用 gcc 版本 8.3.1 ,并且没有看到任何版本不匹配。我尝试在一个小的测试脚本factorial.cpp上运行gcov,它显示正确的覆盖范围。

期待子集代码库上的某种代码覆盖。

0 个答案:

没有答案