C/C++工具:代码覆盖率工具gcov与lcov

工具 功能
gcov 生成代码覆盖信息
lcov 把文字的代码覆盖率信息转换成更直观的图形表格模式
  • 编译选项
选项 功能
-fprofile-arcs 生成目标文件中添加覆盖信息
-ftest-coverage 生成包含程序块和行号等信息.gcno文件
-coverage -fprofile-arcs-ftest-coverage组合
  • 链接选项
选项 功能
-fprofile-arcs 生成目标文件中添加覆盖信息
-lgcov 连接gcov动态库
  • 编译代码文件
g++ -fprofile-arcs -ftest-coverage 源文件 -o 可执行文件

生成.gcno文件

  • 执行生成的可执行文件
./可执行文件

生成.gcda文件

  • 生成覆盖信息
gcov 源文件.cpp

生成源文件.cpp.gcov文件

  • 生成表格格式信息
lcov -d . -t '表格名称' -o '文件名称.info' -b . -c
  • 生成HTML文件
genhtml -o 输出目录名 -t '表格名称' 文件名.info

lcov的安装

  • 下载
  • 解压tar -zxvf lcov-版本.tar.gz
  • 进入工作目录cd lcov-版本
  • 安装make install

技巧

生成的代码覆盖率通常会包含标准库的覆盖率信息,可以给lcov加上选项-e /usr/include/*排除标准库。

你可能感兴趣的:(C/C++工具:代码覆盖率工具gcov与lcov)