【发布时间】:2017-11-04 21:32:40
【问题描述】:
我目前面临为静态库的覆盖数据生成 .gcda 文件的问题。我可以获得大多数文件的覆盖率数据,但不是全部。
我会将缺少覆盖率数据的目标文件称为 X。
注意事项:
- 我已经编译了库并使用适当的标志测试了可执行文件。
- 为所有对象生成 .gcno 文件,包括 X。
- 为 MOST 对象生成 .gcda 文件,X 除外。
- X 目标文件的符号转储在其反汇编中包含 gcov 符号。
运行使用 X 的测试时,会为其他文件生成 .gcda 文件,而不是 X。
会发生什么阻止生成单个 .gcda 文件?
-
操作系统:OS X 10.12
LLVM 编译器版本:8.0.0
【问题讨论】:
-
对象 X 是否与 gcov 库链接?此外,库 X 源的 *.gcda 文件将在从源构建库 X 的路径中生成。
-
是的。 .gcda 文件正在为所有对象生成,但少数。它们都链接并使用适当的标志构建,如 xcodebuild 输出所示。
标签: c++ macos llvm code-coverage gcov