cpp 覆盖率

options

  • compile: -fprofile-arcs, -ftest-coverage
  • link: -lgcov

或者:

  • compile: --coverage
  • link: --coverage

详情参见:https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html

编译完后会产生*.gcno, *.gcda 文件

lcov

用lcov 收集数据

## *.gc?? 数据在gcda_dir下, 源代码路径在 src_dir, gcov_info_file 是gcov数据文件
## 用--no-external 排除掉不在前二者目录下的数据
lcov --no-external -c -d {gcda_dir}  -b {src_dir} -o {gcov_info_file}
## --extract 提取匹配 src 的文件
lcov --extract {gcov_info_file} "*src*" -o {gcov_info_file}
## --remove 去掉 匹配 unittest, odb 的文件
lcov --remove {gcov_info_file} "*unittest*" "*odb*" -o {gcov_info_file}
## 在output_dir 下生成html 的报告
genhtml -o {output_dir} {gcov_info_file} --demangle-cpp

ref:

  • http://ltp.sourceforge.net/coverage/lcov/lcov.1.php
  • https://wiki.documentfoundation.org/Development/Lcov#Run_lcov_again_after_tests.2Fchecks_complete

scons

有几个用scons 集成gcov的项目

  • https://github.com/ptomulik/scons-tool-gcccov
  • https://github.com/sansajn/test/tree/master/scons/soname
  • https://sansajn.github.io/post/2021/03/17/coverage-report.html

覆盖率coverage相关推荐

  1. vcs/urg 进行覆盖率coverage merge及部分merge到整体

    目录 1.vcs收coverage基本Option 2.相同代码的merge 3.部分merge到整体 3.1 mapfile 3.2 -map使用语法 3.3合并的常见问题 3.3.1 UCAPI- ...

  2. Python覆盖率框架Coverage初探

    探索背景 前几天,突然有人在我司覆盖率用户群中,提出个问题,有没有Python版的覆盖率接入方法(我司主要是java),负责的同学发给他一个文档.我想着java版的覆盖率原理了解起来有一定难度,pyt ...

  3. sonar覆盖率、代码覆盖率、分支覆盖率的计算方式

    代码质量的覆盖率分为三种,覆盖率.代码覆盖率.分支覆盖率,那每一种的计算方式是怎么样的呢? 举例: 上面最有疑惑的是覆盖率,不知道怎么算出了来的,后面再说. 通过sonarqube可以分析出: 指标 ...

  4. Systemverilog覆盖率的合并和计算方式

    在systemverilog中,对于一个covergroup来说,可能会有多个instance,我们可能需要对这些instance覆盖率进行操作. 只保存covergroup type的覆盖率,不需要 ...

  5. 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例

    强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例 4. 蒙特卡洛方法 4.1 蒙特卡洛预测 例4.1:Blackjack(21点) 4.2 动作价值的蒙特卡洛估计 4. ...

  6. 深度 | 推荐系统评估

    作者 | gongyouliu 来源 | 大数据工程师 作者在上篇文章<推荐系统的工程实现>中提到推荐系统要很好地落地到业务中,需要搭建支撑模块,其中效果评估模块就是其中非常重要的一个.本 ...

  7. 人人直播带货的时代,推荐模型为什么比不过李佳琦们?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘投稿作品 作者:袁峻峰 疫情期间,各平台在线直播带货量都大幅上涨,具研究机构 ...

  8. 软件测试中英文词汇汇总

    Acceptance testing : 验收测试 Acceptance Testing:可接受性测试 Accessibility test : 软体适用性测试 actual outcome:实际结果 ...

  9. 推荐策略产品经理:剖析协同过滤(千人千面推荐的核心 )

    本文为PMCAFF专栏作者凤城狂客出品 前文:剖析千人千面的大脑--推荐引擎部分,其中这篇是定位:对推荐引擎中的核心算法:协同过滤进行深挖. 首先,千人千面融合各种场景,如搜索,如feed流,如广告, ...

最新文章

  1. 启停系统错误_关掉自动启停系统,就可以用普通蓄电池代替启停蓄电池吗?
  2. 将Java程序打jar包并运行
  3. Python常见错误及解决方案(持续更新)
  4. agpl限制了开源_不要限制您的开源项目的潜力
  5. WinForm与WebForm调试输出
  6. 用C#调用Windows API向指定窗口发送按键消息(转载)
  7. vivado 使用DDS IP方法
  8. 《统计学习方法》——逻辑斯蒂回归
  9. MapInfo地图查询的简单实现
  10. BASIC-9 特殊回文数 C语言版
  11. luogu P5560 [Celeste-B]Golden Feather
  12. UEFI——PCD研究
  13. 设置windows补丁自动更新指向固定服务器
  14. 激光电视的优缺点说明,激光电视与投影有什么区别
  15. Python之路【第十一篇】: 进程与线程
  16. 【史上最最最高仿】V2EX论坛源码—React + Golang开源库,求高手拍砖提建议~
  17. pages.json tabBar[‘list‘][2][‘pagePath‘] “pages/contact/contect“ 需在 pages 数组中
  18. c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案
  19. SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
  20. SpringBoot配置多数据源(MySQL+SQLServer)

热门文章

  1. 基于主成分分析 沪深300个股一致性IF股指交易策略
  2. 关于外贸的相关知识和经验(下)
  3. python有声读书_来香一个,用Python做有声小说!
  4. 腾讯云发布新一代自研云原生数据库CynosDB
  5. Rottenwood for mac(电影收藏影评工具)
  6. python 三维地球代码_如何用两行代码实现三维地球的构建?
  7. 机器学习实战第2版 00 python虚拟环境在Ubuntu/win(anacondavirtualenv)系统下的配置
  8. Java RSA、AES加解密,Python RSA、AES加解密
  9. 在jsp页面如何获取servlet请求中的参数的办法
  10. 初遇初识初知接下来是什么_高新区科普大讲堂——初识人工智能