我使用 gcov 进行代码覆盖分析,使用 lcov 生成覆盖的图形输出。这适用于至少执行了目标文件的某些部分的代码文件。我希望能够跟踪根本没有执行的文件。我怀疑这与没有为这些文件生成 .gcda 文件有关。有没有办法强制为所有目标文件生成 .gcda 文件而不管执行如何?
问问题
3060 次
2 回答
7
此处概述了执行此操作的过程:
http://linux.die.net/man/1/lcov
为测试用例捕获数据时的推荐过程:
创建基线覆盖数据文件
lcov -c -i -d appdir -o app_base.info
进行测试
appdir/test
创建测试覆盖率数据文件
lcov -c -d appdir -o app_test.info
结合基线和测试覆盖率数据
lcov -a app_base.info -a app_test.info -o app_total.info
于 2014-11-14T19:58:06.793 回答
0
对于所有正确编译和链接的文件,都会有一个 .gcda 文件。如果您看到缺少 *.gcda 文件,请检查 *.gcno 文件是否存在。如果它不检查是否所有的 Makefile 都正确构建:
- -ftest-coverage : 编译源文件时生成.gcno notes文件
- -fprofile-arcs :当执行包含使用 GCC -fprofile-arcs 选项构建的目标文件的程序时,会生成 .gcda 计数数据文件。
于 2014-11-04T11:05:19.073 回答