在Ubuntu上使用GCC进行代码覆盖率分析,通常需要借助gcov
和lcov
这两个工具。以下是详细的步骤:
首先,确保你已经安装了gcc
、g++
和make
。然后,安装gcov
和lcov
:
sudo apt-get update
sudo apt-get install gcc g++ make gcov lcov
使用gcc
或g++
编译你的代码,并启用覆盖率选项。例如,如果你有一个名为main.c
的文件,可以使用以下命令进行编译:
gcc -fprofile-arcs -ftest-coverage -o main main.c
或者对于C++代码:
g++ -fprofile-arcs -ftest-coverage -o main main.cpp
运行编译后的程序,生成覆盖率数据:
./main
使用lcov
生成覆盖率报告。首先,收集覆盖率数据:
lcov --capture --directory . --output-file coverage.info
然后,生成HTML格式的覆盖率报告:
genhtml coverage.info --output-directory out
打开生成的HTML报告,通常在out
目录下。你可以使用浏览器打开out/index.html
文件来查看详细的覆盖率信息。
假设你有一个简单的C程序main.c
:
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int sum = add(3, 4);
printf("Sum: %d\n", sum);
return 0;
}
按照上述步骤进行操作:
编译代码:
gcc -fprofile-arcs -ftest-coverage -o main main.c
运行程序:
./main
生成覆盖率报告:
lcov --capture --directory . --output-file coverage.info
genhtml coverage.info --output-directory out
查看覆盖率报告:
打开浏览器,访问file:///path/to/out/index.html
。
通过这些步骤,你可以轻松地在Ubuntu上使用GCC进行代码覆盖率分析,并生成详细的HTML报告来查看代码的覆盖情况。