测试执行后缺少某些GCDA文件

时间:2017-06-03 16:57:12

标签: c++ macos llvm code-coverage gcov

我目前面临着为静态库的覆盖数据生成.gcda文件的问题。我可以获得大多数文件的覆盖率数据,但不是全部。

我将带有缺失覆盖数据的目标文件称为X。

有些注意事项:

  • 我已经使用适当的标志编译了库并测试了可执行文件。
  • 为所有对象生成.gcno文件,包括X.
  • 为MOST对象生成.gcda文件,X除外。
  • X的目标文件的符号转储在其反汇编中存在gcov符号。

运行使用X的测试时,会为其他文件生成.gcda文件,而不是X.

可能会发生什么阻止生成单个.gcda文件?

-

操作系统:OS X 10.12

LLVM编译器版本:8.0.0

2 个答案:

答案 0 :(得分:1)

问题似乎包括测试项目和库项目中的可疑文件。 .gcda文件在测试的中间文件中找到,但在库的中间文件中不存在。

奇怪的问题,也很难调试。

答案 1 :(得分:0)

我认为您可能需要为gcov启用内核。
启用 CONFIG_DEBUG_FS,CONFIG_GCOV_KERNEL,CONFIG_GCOV_FORMAT_AUTODETECT CONFIG_GCOV_PROFILE_ALL

和静态lib的gcda文件将在/ sys / kernel / debug / gcov /