lcov for linux 使用

  1. 首先安装lcov,我安装的版本是lcov-1.9
  2. 写一个app.c文件,代码如下:

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    void main()
    {
     int a=3;
     int b=4;
     int c=5;

    if(a>b&&a>c)//判断a 是不是最大
     {
      if(b>c)
      {
       printf("a>b>c");
      }else
      {
       printf("a>c>b");
      }
     }
     else if(b>a&&b>c)//判断b 是不是最大
     {
       if(a>c)
      {
       printf("b>a>c");
      }else
      {
       printf("b>c>a");
      }
     }
     else if(c>b&&c>a)//判断 c 是不是最大
     {
       if(a>b)
      {
       printf("c>a>b");
      }else
      {
       printf("c>b>a");
      }
     }
    }

  3. [[email protected] Test]# gcc -fprofile-arcs -ftest-coverage -o myappaa app.c
  4. [[email protected] Test]# ./myapp
  5. [[email protected] Test]# gcov app.c
    File ‘app.c‘
    Lines executed:58.82% of 17
    app.c:creating ‘app.c.gcov‘
  6. [[email protected] Test]# ls
    app.c  app.c.gcov  app.gcda  app.gcno  myapp
  7. [[email protected] Test]# lcov -d ./ -o myapp.info -b . -c
    Capturing coverage data from ./
    Found gcov version: 4.4.7
    Scanning ./ for .gcda files ...
    Found 1 data files in ./
    Processing app.gcda
    Finished .info-file creation
  8. [[email protected] Test]# ls
    app.c  app.gcda  app.gcno  myapp  myapp.info
  9. [[email protected] Test]# genhtml -o myapp_restul myapp.info
    Reading data file myapp.info
    Found 1 entries.
    Found common filename prefix "/opt"
    Writing .css and .png files.
    Generating output.
    Processing file zhaogh/Test/app.c
    Writing directory view page.
    Overall coverage rate:
      lines......: 58.8% (10 of 17 lines)
      functions..: 100.0% (1 of 1 function)
      branches...: 33.3% (6 of 18 branches)
  10. sz myapp_restul
  11. 然后打开index就可以查看到代码执行的覆盖率了
时间: 2025-01-08 20:27:56

lcov for linux 使用的相关文章

嵌入式linux应用程序调试方法

嵌入式linux应用程序调试方法 四 内存工具 17 4.1 MEMWATCH 17 4.2 YAMD 22 4.3 Electric Fence 24 五 C/C++代码覆盖.性能profiling工具 24 5.1 用gcov来测试代码覆盖率 25 5.2 使用gprof来优化你的C/C++程序 35 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来跟踪稀奇古怪的内存错误问题.应用程序在有的开发工作站上能运行,但在新的产品工作站上,这个应用

Linux运维 第五阶段(四) corosync&pacemaker

Linux运维 第五阶段(四)corosync&pacemaker 一.相关概念: 补充 { what is high Availability? A=MTBF/(MTBF+MTTR) MTBF(mean time betweenfailures平均无故障时间) MTTR(mean time to repair平均修复时间) two ways improve availability? increase MTBF to very large values reduce MTTR to very

嵌入式平台组件白盒测试gcov、lcov和genhtml 使用指导

在嵌入式平台上使用了gtest白盒测试工具,覆盖了被测函数,但是不知道自己测试的效果如何,测试行覆盖率.函数覆盖率,分支覆盖率的数据. 便开始研究gcov这个代码覆盖率工具能否使用,来检查白盒测试的效果,以及指引测试改进的方向.经过多次尝试和研究, 在嵌入式平台上可以使用gcov这个工具,不过操作稍微复杂点. 环境要求: 1.有被测组件的源代码 2.对应平台的交叉编译器必须包含gcov功能 3.安装好lcov工具 4.相应的嵌入式设备 使用gcov/lcov测试代码覆盖率,总共分为四步: 1.在

[fw]linux测试工程介绍(Linux Test Project)

http://ltp.sourceforge.net/ Linux Test Project, 后台很硬,由SGI? 发起, IBM维护,所以质量有保障. 里面介绍了很多工具,对于一般的基准测试应该是真够用了,关键是开发源码, 可以根据自己工程的需求,自己定制修改,本人由于工作原因阅读了(lmbench:lmdd , dbench 文件系统方面的测试),觉得非常不错 http://www.bitmover.com/lmbench/ http://www.samba.org/ftp/tridge/

Linux下c/c++项目代码覆盖率的产生方法

最近做了一系列的单元测试相关的工作,除了各种规范及测试框架以外,讨论比较多的就是关于代码覆盖率的产生,c/c++与其他的一些高级语言或者脚本语言相比较而言,例如 Java..Net和php/python/perl/shell等,由于没有这些高级语言和脚本语言的反射的特性,其代码覆盖率的产生过程会稍微复杂一些.发现许多同学对C++的覆盖率如何产生在都不太清楚,这里做一个简单的介绍. 一.基本使用方法 在Linux上的c/c++开发一般都使用gcc/g++作为主要的编译器,如果需要产生覆盖率数据需要

个人项目-WC(C/C++ Linux/Windows)

1. Github地址 https://github.com/S-TRAVELER/WC 2. PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 20 · Estimate · 估计这个任务需要多少时间 20 20 Development 开发 1370 1405 · Analysis · 需求分析  80 80 · Design Spec · 生成设计文档 60 50 · Design

LTP--linux稳定性测试 linux性能测试 ltp压力测试 ltp-pan

LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33710人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了解LTP是干嘛的,直到参加一次技术沙龙才了解到它是用来对linux系统进行稳定性测试的一个开源工具,演讲人是世纪佳缘运维部门的技术老总!平时我们这些做运维朋友们都很少涉及到系统的测试,因为觉得linux本生就很稳定,因此就没有必要去做测试,但是系统是更新的,同样linux的内核是也在更新的,那新系统是否

排查Linux机器是否已经被入侵

随着开源产品的越来越盛行,作为一个Linux运维工程师,能够清晰地鉴别异常机器是否已经被入侵了显得至关重要,个人结合自己的工作经历,整理了几种常见的机器被黑情况供参考 背景信息:以下情况是在CentOS 6.9的系统中查看的,其它Linux发行版类似 1.入侵者可能会删除机器的日志信息,可以查看日志信息是否还存在或者是否被清空,相关命令示例: [[email protected] ~]# ll -h /var/log/* -rw-------. 1 root root 2.6K Jul 7 18

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin