加载中…
个人资料
鞠小林NTU
鞠小林NTU
  • 博客等级:
  • 博客积分:0
  • 博客访问:479,865
  • 关注人气:47
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

原创:gcov、lcov与genhtml 使用心得

(2012-09-21 08:40:47)
标签:

杂谈

目标文件

编译器

当前路径

信息报告

分类: 统计分析与R语言

gcc是linux平台下的C、C++ 编译器

gcov是配合gcc产生覆盖信息报告的工具;

lcov是将gcov产生的报告信息,以更直观的方式显示出来工具

基本的使用方法分为4个阶段:

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

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

   # ls

   test   test.c   test.gcno

   说明:参数 fprofile-arcsftest-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 浏览覆盖信息




 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有