为代码优化提供证据和代码覆盖度

为代码优化提供证据和代码覆盖度

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文件。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *