| 工具 | 功能 |
|---|---|
| gcov | 生成代碼覆蓋信息 |
| lcov | 把文字的代碼覆蓋率信息轉(zhuǎn)換成更直觀的圖形表格模式 |
- 編譯選項(xiàng)
| 選項(xiàng) | 功能 |
|---|---|
-fprofile-arcs |
生成目標(biāo)文件中添加覆蓋信息 |
-ftest-coverage |
生成包含程序塊和行號(hào)等信息.gcno文件 |
-coverage |
-fprofile-arcs與-ftest-coverage組合 |
- 鏈接選項(xiàng)
| 選項(xiàng) | 功能 |
|---|---|
-fprofile-arcs |
生成目標(biāo)文件中添加覆蓋信息 |
-lgcov |
連接gcov動(dòng)態(tài)庫 |
- 編譯代碼文件
g++ -fprofile-arcs -ftest-coverage 源文件 -o 可執(zhí)行文件
生成.gcno文件
- 執(zhí)行生成的可執(zhí)行文件
./可執(zhí)行文件
生成.gcda文件
- 生成覆蓋信息
gcov 源文件.cpp
生成源文件.cpp.gcov文件
- 生成表格格式信息
lcov -d . -t '表格名稱' -o '文件名稱.info' -b . -c
- 生成HTML文件
genhtml -o 輸出目錄名 -t '表格名稱' 文件名.info
lcov的安裝
自動(dòng)安裝
- Ubuntu
sudo apt-get install -y lcov
手動(dòng)安裝
- 下載
- 解壓
tar -zxvf lcov-版本.tar.gz - 進(jìn)入工作目錄
cd lcov-版本 - 安裝
make install
技巧
生成的代碼覆蓋率通常會(huì)包含標(biāo)準(zhǔn)庫的覆蓋率信息,可以給lcov加上選項(xiàng)-e /usr/include/*排除標(biāo)準(zhǔn)庫。