Kcov是一个代码覆盖测试工具,最初基于Bcov,它可在FreeBSD、Linux、OSX系统中使用,支持的语言包括编译语言(compiled languages)、Python和Bash。与Bcov一样,Kcov对编译的程序使用DWARF调试信息,以便无需特殊编译器开关即可收集覆盖信息。注:测试程序需要使用Debug模式编译。

在Ubuntu14.04上安装Kcov操作步骤:

1. 从 https://github.com/SimonKagstrom/kcov/releases 下载最新稳定版v36源码:kcov-36.tar.gz

2. 将kcov-36.tar.gz拷贝到/data/Soft/kcov目录下,并解压缩,执行以下命令会产生kcov-36目录:

sudo tar -xvzf kcov-36.tar.gz

3. 通过sudo apt-get install命令安装以下依赖项,否则不会生成kcov执行文件:

sudo apt-get install binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev

4. 进入kcov-36目录,依次执行如下命令:

sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install

5. 验证Kcov是否安装正确,查看Kcov安装版本,执行命令$ kcov --version,结果如下图所示:

6. Kcov的使用:以GitHub上的Messy_Test( https://github.com/fengbingchun/Messy_Test )为例:将终端定位到Messy_Test/prj/linux_cmake_CppBaseTest目录下,执行:

./build.sh
kcov --include-path=../../demo/CppBaseTest kcov_report ./build/CppBaseTest

生成的相关信息均在kcov_report目录下,如下图所示:

其中CppBaseTest.197f3eb3277c3ef0目录是我们主要关注的,demo/CppBaseTest中的每个.cpp文件都会生成对应的*.html和*.js文件,用浏览器打开*.html文件即可查看到当前指定文件的覆盖率,如下图所示:multi_threaded_memory_pool.cpp文件的覆盖率为88.3%,其中绿色代表执行程序调用到,红色代表执行程序没有调用过:

7. Kcov选项的更多说明可以通过执行kcov --help来查看,如下图所示:

代码覆盖测试工具Kcov简介及使用相关推荐

  1. C++语言代码检查工具PC-Lint简介

    http://campus.chsi.com.cn/xy/com/200801/20080116/3689197.html

  2. Java代码混淆工具ProGuard

    目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...

  3. HighNewTech:低代码(0代码/无代码,无需代码)开发的简介以及如何选择最合适的低代码开发工具

    High&NewTech:低代码(0代码/无代码,无需代码)开发的简介以及如何选择最合适的低代码开发工具 导读:在互联网时代,博主经常反思一个问题,如何跟进这个快速发展的时代才能不会被淘汰?博 ...

  4. 静态代码检查工具简介

    静态代码检查工具简介 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷.传统的代码复审.同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情.Java 静态代码分 ...

  5. 静态代码分析工具简介

    静态代码分析工具简介 什么是静态代码分析 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句 ...

  6. AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介、安装、使用方法之详细攻略

    AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介.安装.使用方法之详细攻略 目录 Ludwig的简介 Ludwig(无需编写代码/易于使用的界面和可视化自 ...

  7. 一些代码静态检查工具的简介

    1.KLOCWORK: 适用语言:C, C++, JAVA 是否开源:否, 是否需要编译:是 作用:代码静态检查工具.用于高效检测软件缺陷和安全隐患,提供优秀的静态源代码分析解决方案.软件号称是业界领 ...

  8. 七款代码味道识别工具【简介】

           代码味道识别工具 (Code Smell Detection Tools, CSDT)既可以应用于软件开发阶段,也可以应用于软件维护阶段.目前大部分IDE都集成了自动或者半自动重构工具, ...

  9. Python 常用静态代码检查工具简介

    对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...

最新文章

  1. VS2013 编译程序时提示 无法查找或打开 PDB 文件
  2. jQuery和AngularJS的区别小分析
  3. SAP云平台ABAP编程环境免费账号使用过程中的一些问题
  4. 【CCF】201703-1分蛋糕
  5. Linux命令:XZ解压tar.xz后缀的压缩包
  6. js 随机数_JS常用方法和一些封装:随机数生成
  7. Jenkins 官网文档翻译汇总
  8. LogBack 日志等级设置无效,原因竟然是因为这个?!
  9. linux 服务器长ping 加时间戳
  10. 计算机主板设置中的英语,技嘉主板bios设置教程,技嘉主板bios中英文对照表
  11. matlab双线性插值双三次插值对CUFED5进行处理
  12. java POI excel导出自定义分页问题
  13. 分布式任务调度平台201902
  14. python怎么选取第几行第几列_python 第几行第几列python 常见的17个错误分析-python-第二电脑网...
  15. 计算机ifand函数补考科目,Excel函数公式:逻辑函数IF、AND、OR、NOT、IFERROR实用技巧解读...
  16. 网络安全系列-XV: 网络异常流量的种类及特征
  17. 计算机论文结束语致谢,论文结束语和致谢
  18. python corrupt extra field_英语专四dictation模拟练习-沪江英语
  19. C++买卖股票的最佳时机(股票买卖大合集)
  20. Simulink常用模块库(Integrator/Discrete-TimeIntegrator)

热门文章

  1. Window10 VS17下 Opencv3.4.5配置
  2. GitHub开源的10个超棒后台管理面板
  3. 生成式对抗网络的原理和实现方法
  4. 深度学习--TensorFlow(5)BP神经网络(混淆矩阵、准确率、精确率、召回率、F值)
  5. OpenCV(26)图像分割 -- 距离变换与分水岭算法(硬币检测、扑克牌检测、车道检测)
  6. Python——字符串大小写转化
  7. 实现2D全景图的中心视野变换
  8. opengl库区分:glut、freeglut、glfw、glew、gl3w、glad
  9. 利用lua中的string.gsub来巧妙实现json中字段的正则替换
  10. CSS、JavaScript、PHP和Python编程合二为一