GCC Coverage代码分析-gcov-dump原理分析

本博客(http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

Content

1.

2. gcov-dump原理分析

2.1 gcov-dump程序结构

2.2 dump_file函数分析

2.3处理各种tagcallback定义

2.4基本读取函数gcov_read_words

2.5分配空间函数gcov_allocate

2.6重要数据结构gcov_var

3.处理tagcallback分析

3.1FUNCTION tag: tag_function()函数

3.2BLOCKS tag: tag_blocks()函数

3.3ARCS tag: tag_arcs()函数

3.4LINES tag: tag_lines()函数

3.5COUNTER tag: tag_counters()函数

3.6OBJECT/PROGRAM SUMMARY tag: tag_summary()函数

4.小结

 

1.

 

gcov的相关文件.gcda(data文件)/.gcno(note文件)文件是以二进制方式写入的(fwrite),普通编辑文件打开看到的只是乱码,用ultraedit打开也只是看到十六进制的数据。如果你了解.gcda/.gcno的文件格式(可以参考"Linux平台代码覆盖率测试工具GCOV相关文件分析"),看起来会好些;否则,看起来便不知所云,除非有一种工具或程序能将其内容按照有意义的(文件)格式dump出来,如果再加上一些提示,就更好了。

——这就是gcov-dump程序。

gcov-dump是一个dump程序,输入是一个gcov的文件,或者.gcda,即gcovdata文件;或者.gcno,即gcovnote文件。

有了"Linux平台代码覆盖率测试工具GCOV相关文件分析""Linux平台代码覆盖率测试-GCC如何编译生成gcov/gcov-dump程序及其bug分析"这两篇文章做基础,gcov-dump的原理就很好理解了。本文不予详细叙述,只做一些代码注释和简单记录,便于用到的时候查询。好头脑赶不上烂笔头嘛。

 

本文例子所用的gcov-dump程序来自"Linux平台代码覆盖率测试-GCC源码中抽取gcov/gcov-dump程序"一文。

 

2. gcov-dump原理分析

2.1 gcov-dump程序结构

图中实线表示调用,实线旁边的数字表示tag值。tag的值请参考gcov_io.h文件,或者"Linux平台代码覆盖率测试工具GCOV相关文件分析"

2.2 dump_file函数分析

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值