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的安装

自动安装

  • Ubuntu
sudo apt-get install -y lcov

手动安装

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

技巧

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容