概述
gcov是gcc工具链内含的一个选项,用于测试Code Coverage,包含代码行,函数及分支的覆盖率测试。
lcov是LTP对gcov扩展的可视化工具,debian系可直接通过apt-get安装,用于生成html格式的详细报告。
本文仅对gcov+lcov的使用及常用技巧作一个简单介绍。
使用步骤
编译目标代码
测试用户空间代码
在编译时加上两个选项-fprofile-arcs
和-ftest-coverage
,如下
gcc -fprofile-arcs -ftest-coverage -o test test.c
编译生成两个文件,可执行目标文件test和test.gcno,可以看到test文件明显大了许多,在此不论述编译器具体做了什么,有兴趣的可以查看gcov的原理。
root:~# gcc -o test test.c
root:~# ls -l test
-rwxr-xr-x 1 root root 7335 Dec 19 23:12 test
root:~# gcc -fprofile-arcs -ftest-coverage -o test test.c
root:~# ls -l test