C/C++工具:代碼覆蓋率工具gcov與lcov

工具 功能
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)庫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容