日期:2014-05-16  浏览次数:20686 次

Linux下gcov和lcov代码覆盖率分析方法

gcov是Linux下GCC自带的一个C/C++代码覆盖率分析工具

使用方法:在gcc或者g++后面添加参数 -fprofile-arcs -ftest-coverage

注意:-fprofile-arcs -ftest-coverage必须同时在编译器和链接器上设置,(makefile里面可以加在 CFLAGS 和 LDFLAGS上),如果连接的时候出现undefined reference to `__gcov_init' 错误,则还要加上-lgocv

编译成功后运行编译好的程序,然后退出程序。程序会在当前目录下生成*.gcda文件。

然后使用 gcov *.c 或者gcov *.cpp生成代码覆盖信息,这个时候需要将原始代码文件*.cpp或者*.c放在*.gcda文件一个目录中。

完成后会生成*.c.gcov或者*.cpp.gcov文件,里面包含了代码覆盖信息。

?

由于*.gcov是文字模式的,linux还自带了一个lcov工具,可以帮助我们把文字的信息转换成更直观的图形表格模式。

lcov -d . -t '表格名称' -o '文件名称.info' -b . -c

此时还没完,这个指令只是输出了一个 info 的中间文件,要变成html格式的图形文件还要下面的指令:

genhtml -o 输出目录名 文件名.info

这样才会在输出目录中生成完整的html图形文件,用浏览器在文件目录中打开index文件就能看到了。

转自:http://www.cnblogs.com/spider33/archive/2012/01/12/2320300.html