在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報告來查看代碼的覆蓋情況。