使用gcov+lcov工具可视化代码分支覆盖率数据

2023-11-12

通过一个简单的例子,来展示如何使用gcov+lcov来生成代码分支覆盖率数据并将其图形化显示

假设有一个main.cpp文件

1. 首先使用gcc编译该文件

g++ main.cpp -fprofile-arcs -ftest-coverage -l gcov -o main.out  
# ftest-coverage用以生成.gcno文件,fprofile-arcs用来在后面应用程序时生成.gcda文件

此时会生成以下两个文件:
main.gcno
main.out

2. 执行main.out文件

此时会生成main.gcda文件,gcda文件和gcno文件都会被用来生成代码分支覆盖率文件

3. 生成gcov文件

gcov main.cpp

gcov文件包含了main.cpp文件的分支覆盖率数据,但是该文件不够直观,可以使用lcov将其变得更加容易解读

4. 生成图形化文件

lcov  -d ./  -o all.info -c

genhtml -o coverage all.info

最终在coverage目录下生成html文件,最终的呈现出的效果如下所示:
在这里插入图片描述

推荐阅读:
GCOV+LCOV 代码调试和覆盖率统计工具

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用gcov+lcov工具可视化代码分支覆盖率数据 的相关文章

随机推荐

  • 防页面url缓存

    在开发中 发现当我们访问一个地址之后 包括ajax访问 打开检测会发现第二次请求没有去服务器端 直接走的浏览器自身的缓存 如何避免这样的情况呢 通过在地址栏后拼一串随机数 即可 例如 XXXX t 生成的随机数 随机数可以跟时间戳 或者随机
  • Vue+el-table+sortable踩坑

    1 拖拽后 同页面切换tab 表格数据更新 表头显示顺序有误 拖拽 1 2 3 2 1 3 更新后为 5 4 6 应为 4 5 6 原代码
  • Kendo UI开发教程(26): 单页面应用(四) Layout

    Layout继承自View 可以用来包含其它的View或是Layout 下面例子使用Layout来显示一个View 1
  • matplotlib绘制直方图

    统计250部电影的时长分布状态 from matplotlib import pyplot as plt from matplotlib import font manager time 131 98 125 131 124 139 131
  • MySQL之 表

    表是关于特定实体的数据集合 这也是关系型数据库模型的核心 1索引组织表 在InnoDB存储引擎中 每张表都有一个主键 Primary Key 如果创建表时没有显示定义主键 则会按照如下方式创建主键 存在非空的唯一索引 Unique NOT
  • html回到顶部的特效

    html代码 div class istop a href self 返回顶部 a div js代码 function istop click function html body animate scrollTop 0 500
  • 通过GPIO探究STM32F10x的寄存器与函数_2021-04-24

    通过GPIO探究STM32F10x的寄存器与函数 将地址用标识符定义出来可以增加可读性 定义引脚 define GPIO PIN 0 uint16 t 0x0001 define GPIO PIN 1 uint16 t 0x0002 def
  • ubuntu关于openssl中缺少crypto库

    官网下载openssl库 https www openssl org source old 1使用tar命令解压至指定目录 sudo tar xzvf openssl 1 1 0e tar gz C filepath 文件路径 2进入解压后
  • 我的2021秋招记录

    普通一本 本硕 嵌入式软件开发岗 收到小米 联发科 浙江大华 汇川技术 英威腾 上能电气 富士康 格力offer 最高28w 最低减半 以下开始讲述一些我找工作的经验 希望对大家有帮助 觉得有帮助的 记得点个赞关注走一波 谢谢大家 一 简历
  • EXCEl中关于Cell中的各种值的类型判断

    private static String getCellValue XSSFCell cell DecimalFormat df new DecimalFormat String cellValue null if cell null r
  • python编写小游戏详细教程,python编写小游戏的代码

    大家好 本文将围绕如何用python编写一个简单的小游戏展开说明 python编写小游戏详细教程是一个很多人都想弄明白的事情 想搞清楚python编写小游戏的代码需要先了解以下几个事情 一 开始制作小游戏 先开始做一个简单的猜数字小游戏火车
  • Vue3 路由页面切换动画 animate.css

    animate css官网 可以通过以下的内容 来获取自己想要的动态切换样式 1 路由动画transition或者在组件中控制使用animate 安装 npm install animate css 在main ts中引入 import a
  • 万字长文——互联网广告到底是如何运行的?

    自互联网诞生之后 广告这个历史悠久的行业就被永远地改变 卫夕一直致力于普及互联网广告的基本逻辑 始终认为这是一个对行业意义的事 为此我做了一个40分钟的视频分享给大家 卫夕希望这个科普课程视频可以达到两个目标 第一 即便是没有从事过广告的小
  • 自动化代码审计工具源伞科技Pinpoint

    自动化代码审计工具源伞科技Pinpoint介绍 源伞科技Pinpoint 源伞科技2016年由香港科大团队创立 立足于国际水平的学术研究积累 秉承工匠精神 致力用最先进的自动程序分析技术保障软件质量 为企业提供以人工智能为基础的工业级程序缺
  • 虚拟聊天记录生成器,微信对话视频生成器,让微信对话以视频形式呈现!

    微信对话视频生成器是一款功能强大的工具 可以将微信聊天记录转化成生动有趣的视频 它不仅可以让用户在朋友圈或社交平台上展示自己的聊天趣事 还可以用于制作个性化的视频礼物 接下来 我们将介绍该工具的主要功能和解决问题的案例 输入聊天记录内容 直
  • C++学习日记和心得(一)(新手帖,高手勿笑)

    前言 我之前三年也学过其他语言 VB pascal 都不是非常主流 但有一定程序学习的基础 没学过程序的孩子也不要伤心 只要认认真真的学习还是可以学会的 我也是刚开始学C 所以希望大家跟我一同从0开始学习C 如果对我有一些疑问和批评欢迎提出
  • 【华为OD机试python】阿里巴巴找黄金宝箱(V)【2023 B卷

    题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 阿里巴巴念出一个咒语数字k k
  • 【100%通过率 】租车骑绿岛【华为OD机试 真题c++/java/python 2022 Q4

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 部门组织绿岛骑行团建活动 租用公共双人自行车 每辆自行车最多坐两人 最大载重M 给出部门每个人的体重 请问最多需要租用多少双人自行车 输入描述
  • 什么是向上管理?意义?

    今天聊一个职场热词 向上管理 这两天刷到字节跳动的招聘官网 他们在阐述 坦诚清晰 的字节范儿时 提到了一句话 实事求是 暴露问题 反对 向上管理 这一点很有意思 因为 向上管理 几乎是职场入门必修课 所以我试着在字节跳动的文化语境中 来理解
  • 使用gcov+lcov工具可视化代码分支覆盖率数据

    通过一个简单的例子 来展示如何使用gcov lcov来生成代码分支覆盖率数据并将其图形化显示 假设有一个main cpp文件 1 首先使用gcc编译该文件 g main cpp fprofile arcs ftest coverage l