gcov 是一个可用于C/C++的代码覆盖工具,是GCC的内建工具。
它的使用很简单,需要在编译和链接时增加-fprofile-arcs -ftest-coverage生成二进制文件。gcov主要使用.gcno和.gcda两个文件,.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息。.gcda是由加了-fprofile-arcs编译参数的编译后的文件运行所产生的,它包含了弧跳变的次数和其他的概要信息。
举个例子:
有一个源文件main.cc:
/// @file main.cc
#include <cstdio>
void test(int num)
{
for(int i = 0; i < num; ++i)
printf("*");
printf(