GCC Coverage代码分析-.gcda/.gcno文件及其格式分析

本文深入分析了GCC代码覆盖率工具gcov生成的.gcda和.gcno文件格式,通过gcov-dump程序的输出,详细解释了文件结构,包括FUNCTION、COUNTERS和OBJECT/PROGRAM SUMMARY等格式,为理解Linux平台代码覆盖率测试提供基础。
摘要由CSDN通过智能技术生成

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

Content

0.

1. .gcda文件分析

1.1 gcov-dump程序输出结果

1.2 文件实际内容

1.3 文件格式总结

2. .gcno文件分析

2.1 gcov-dump程序输出结果

2.2 文件实际内容

2.3 文件格式总结

3. 小结

 

0.

 

"Linux平台代码覆盖率测试-gcov-dump原理分析"一文中,我们详细分析了gcov-dump程序的实现原理及每种tag的输出格式,本文,仍然以前面几篇文章的test.c为例,说明gcov-dump程序的输出结果,并总结.gcda/.gcno文件格式。

 

1. .gcda文件分析

1.1 gcov-dump程序输出结果

以下dump结果请参考"Linux平台代码覆盖率测试-GCC如何编译生成gcov/gcov-dump程序及其bug分析"一文的3.33.4节。

# /home/zubo/gcc/2011-04-11.gcov-dump/gcov-dump test.gcda
test.gcda:data:magic `gcda':version `401p'
test.gcda:stamp 3320622649  //对应下面的0xc5ecae39
test.gcda: 01000000:   2:FUNCTION ident=3, checksum=0xeb65a768  //tag, length=2, ident, checksum
test.gcda:  01a10000:  10:COUNTERS arcs 5 counts  //tag, length=10, 5个COUNTERS
test.gcda:              0 10 0 1 0 1  //此处便是5个counter,共40字节
test.gcda: a1000000:   9:OBJECT_SUMMARY checksum=0x00000000
test.gcda:              counts=5, runs=1, sum_all=12, run_max=10, sum_max=10
test.gcda: a3000000:   9:PROGRAM_SUMMARY checksum=0x51924f98
test.gcda:              counts=5, runs=1, sum_all=12, run_max=10, sum_max=10

输出格式可以参考源代码,或者"Linux平台代码覆盖率测试-gcov-dump原理分析"

 

1.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值