使用gcov获取replace数据集的语句覆盖信息
使用gcov
- 编译生成.gcno文件
gcc -fprofile-arcs -ftest-coverage replace.c -o replace.exe
上面的参数-fprofile-arcs -ftest-coverage一定要带上,会生成gcno文件
- 生成.gcda文件
运行测试用例,测试脚本,会生成gcda文件
source ./runall.sh
- 生成 .gcov代码覆盖文件
需要将原始代码文件 *.cpp 或者 *.c 放在 *.gcda 文件一个目录中,完成后会生成 *.c.gcov 或者 *.cpp.gcov 文件, 里面包含了代码覆盖信息
gcov replace.c
生成的覆盖信息如图所示,其中标记”-:”表示该行语句不是可执行语
句;标记”#####:”表示该行语句是可执行语句但是未被执行,数字x表示该语句被执行的次数
- lcov 生成 info 图形化数据
-c 生成覆盖率信息
-o 生成目标文件
-d 目录
. 当前目录
lcov -c -o replace.info -d .
- 生成html文件
genhtml replace.info -o ./output