本博客(http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
Content
0.序
1. gcov
1.1 gcov必须的文件
(1) 实现文件
(2) 版本文件
(3) 配置文件
(4) 系统文件
1.2如何编译生成gcov
2. gcov-dump
3. gcov-tools
4. 小结
Reference
附:本文代码下载地址
0.序
若想研究gcov/gcov-dump原理或者代码,深入函数内部跟踪调试是最好的理解方式,但gcc的源代码毕竟比较庞大,欲从中抽丝剥茧,往往会被gcc的庞大源代码吓住。那么,有没有一种方式,允许我们从gcc的源代码中抽取想要研究的程序或代码?
有!
本文以gcov程序为例,说明如何从GCC源代码中抽取gcov/gcov-dump程序并编译生成可执行的程序。有了这个独立的gcov/gcov-dump,研究、调试很方便。想搞清楚gcc的内部机理,并非一朝一夕之功,本文只是一种探索,希望对一些想研究gcc coverage test的朋友有些帮助。余愿足矣。
本文gcc源代码版本为gcc-4.1.2,其位置在/usr/src/gcc-4.1.2目录,.表示/usr/src/gcc-4.1.2。
1. gcov
gcov程序的输入是一个.c文件,前提是已经编译生成了.gcno文件并运行可执行程序生成.gcda文件;gcov根据.c文件相应的.gcda文件和.gcno文件生成相应的.c.gcov并报告覆盖率测试结果。
1.1 gcov必须的文件
(1)实现文件