2个工具联合起来实现这一功能:
- gcov
- lcov
第一个是根据代码生成结果
第二个工具根据第一个工具产生的结果生成可视化的结果。
下载和说明
gcov:
https://gcc.gnu.org/onlinedocs/gcc/Gcov.html
lcov:
http://ltp.sourceforge.net/coverage/lcov.php
使用方法
假设你有代码, main.cpp
#include<iostream>
using namespace std;
int add( int a , int b )
{ return a + b; }
int substract( int a , int b ) // 不会被执行
{ return a – b; }
int main( void )
{
cout<<"hello world"<<endl;
add( 1, 2 );
exit( 0 );
return 0; // 不会被执行
}
然后使用
g++ -fprofile-arcs -ftest-coverage main.c -o main ———-> 这个生成 .gcno 文件
./main ———-> 这个生成 .gcda 文件
gcov main.cpp ———-> 这个生成 main.cpp.gcno 文件
就会显示代码有百分之多少被执行
打开main.cpp.gcno
文件你就看到每行被执行的次数。
lcov可以生成一个html文件,然后你用浏览器可以打开查看,
lcov –capture –directory . –output-file coverage.info
genhtml coverage.info –output-directory out
执行完上面的命令就可以在out文件中看到对应的index.html文件。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.