本博客(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.3和3.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