gcov、lcov生成代码覆盖率的过程

高大上的代码覆盖率图表生成过程

  • 安装解析工具(此处以mac下安装lcov为例)

    brew install lcov

  • gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno

   #gcc -fprofile-arcs -ftest-coverage -o test test.c
   # ls
   test   test.c   test.gcno

说明:参数 fprofile-arcs 和 ftest-coverage 告诉gcc编译器:(1)在目标文件test 插装跟踪代码;(2)生成供gcov使用 test.gcno [gcov node 文件]。
因此,这里的生成的目标文件比正常编译的文件大。

  • 运行目标文件:收集运行覆盖信息 test.gcda

    # ./test
    Success -- 这里是运行结果。
    # ls
    test test.c test.gcno test.gcda

    这里test.gcda运行结果,
  • gcov产生报告信息: test.c.gcov
    #gcov  test.c
      File 'test.c'
      Lines executed: 87.50% of 8
      test.c: creating 'test.c.gcov'
    #ls
      test test.c test.c.gcov test.gcda test.gcno
  • lcov:格式化test.c.gcov ,输出到 test.info文件
    #lcov -d . -t 'test' -o 'test.info' -b . -c
    说明:
         -d  . :参数 d指路径, "." 指当前路径
         -t  "name" :指目标文件,这里 是 test
         -o  "filename" :输出格式化后的信息文件名
  • genhtml:根据信息文件(.info)产生html 文档,输出到一个文件夹中
   #genhtml -o result test.info
说明: -o  directory :参数o (output)后面跟路径名称,在当前目录下创建指定目录,本例中是result

至此: 可以在result目录中打开index.html 浏览覆盖信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值