gcov程序的输入是一个.c文件,前提是已经编译生成了.gcno文件并运行可执行程序生成.gcda文件;gcov根据.c文件相应的.gcda文件和.gcno文件生成相应的.c.gcov并报告覆盖率测试结果。
1.1 gcov必须的文件
(1)实现文件
根据"Linux平台代码覆盖率测试-GCC如何编译生成gcov/gcov-dump程序及其bug分析"一文的讨论,gcov所需的.c文件有gcov.c, gcov-io.c, intl.c, error.c, version.c。
注:gcov-io.c在编译gcov时并没有显示被编译(成.o文件),实际上,gcov-io.c被包含进了gcov.c文件中,请参考gcov.c代码。
因此,我们需要将这些.c文件及其.h文件抽取出来。
(2)版本文件
gcov-iov.h:该文件的内容由./gcc/gcov-iov程序生成。请参考"Linux平台代码覆盖率测试工具GCOV相关文件分析"一文。内容如下。
[cpp] view plaincopy
/* Generated automatically by the program `./gcov-iov'
from `4.1.2 (4 1) and p (p)'. */
#define GCOV_VERSION ((gcov_unsigned_t)0x34303170) /* 401p */
(3)配置文件
auto-host.h
config.h
其中,
auto-host.h文件可以使用./gcc/configure程序自动生成,当然,这里的auto-host.h文件只需要包含在gcov程序中需要的常量,且有些常量需要修改,内容如下。
大部分linux系统都安装了g++(gcc) 可以在linux命令行模式下用g++ 的方法编译 其实有很多跨平台的IDE如codeblocks,还有一些强大的文本编辑器如gvim都可以在linux下输入,编译,调试 linux是许多oier的选择欢迎分享,转载请注明来源:内存溢出
评论列表(0条)