我使用gcov进行代码覆盖率分析,使用lcov生成覆盖率的图形输出。对于已经执行了部分目标文件的代码文件,这个方法效果很好。但我想要追踪完全未被执行的文件。我怀疑这与这些文件没有生成.gcda文件有关。是否有一种方法可以强制生成所有目标文件的.gcda文件,而不考虑是否执行?
我使用gcov进行代码覆盖率分析,使用lcov生成覆盖率的图形输出。对于已经执行了部分目标文件的代码文件,这个方法效果很好。但我想要追踪完全未被执行的文件。我怀疑这与这些文件没有生成.gcda文件有关。是否有一种方法可以强制生成所有目标文件的.gcda文件,而不考虑是否执行?
执行此操作的程序如下所示:
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
对于所有已正确编译和链接的文件,都会有一个 .gcda 文件。如果您发现缺少 *.gcda 文件,请检查是否存在 *.gcno 文件。如果没有,请检查是否使用以下命令正确构建了所有 Makefiles: