免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

gcov使用注意事項

以前做過一些gcov方面的工作,最近又做,發現一些踩過的坑被忘記了,又整理了一遍,防止再次出現類似情況。

成都創新互聯公司是一家專業提供臺安企業網站建設,專注與成都網站設計、網站建設、H5建站、小程序制作等業務。10年已為臺安眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。

使用gcov測試代碼覆蓋率的流程是:
添加編譯選項和鏈接選項-----》運行程序(設置GCOV_PREFIX,設置GCOV_PREFIX_STRIP環境變量)-----》讓程序正常結束(kill不會生成相關.gcda文件)-----》運行gcov命令手動分析或用lcov來分析,lcov可能需要手動安裝,安裝地址https://github.com/linux-test-project/lcov.git

1,在編譯選項中添加-ftest-coverage -fprofile-arcs,
-fkeep-static-functions -fkeep-inline-functions選項可另行選用
在鏈接選項中添加 -lgcov,特別要注意,編譯生成的.so中,也要鏈接-lgcov,
即在生成的可執行程序和.so中,都需要鏈接-lgcov

2,運行程序,先設置GCOV_PREFIX和GCOV_PREFIX_STRIP環境變量,也可以不設置,不設置時,生成的.gcda文件在make時的目錄及其子目錄下,即與相關的源代碼路徑相同,只是文件名不同。
這兩個變量,可以控制生成的.gcda的位置
GCOV_PREFIX_STRIP去掉原代碼路徑中的前幾級,
比如源代碼路徑為/a/b/c/d.cpp,如果GCOV_PREFIX_STRIP=2
則實際使用的路徑是c/d.cpp
如果GCOV_PREFIX=/run/gcov,則.gcda實際存放的路徑是/run/gcov/c/d.gcda

程序運行后,可以進行正常的業務測試

3,讓程序正常結束,比如處理特定信號并exit(0),或其他方式,把程序kill掉不會生成相關的.gcda

4,gcov命令分析見 gcov -h,下面附一個lcov的小腳本:

#!/bin/sh

#如果lcov沒有裝,要先裝lcov
#可以從 https://github.com/linux-test-project/lcov.git 上裝
#使用前注意事項
#1,啟用gcov相關編譯選項,見make gcov=1
#2,需要在程序運行并正常退出后,運行此腳本,生成相關覆蓋率文件

echo "check lcov cmd"
lcov=$(command -v lcov | wc -l)
if [[ ${lcov} == 0 ]]; then
    echo 請先安裝 lcov, 安裝來源可以參考 https://github.com/linux-test-project/lcov.git
    exit 0
fi

echo "creating ../gcov"
if [[! -d ../gcov ]]; then
    mkdir ../gcov
fi

echo "creating ../gcov/gcov.info"
lcov -c -o ../gcov/gcov.info -d ../src

echo "creating htmls "
if [[! -d ../gcov/html ]]; then
    mkdir ../gcov/html
fi

genhtml -o ../gcov/html ../gcov/gcov.info

網站標題:gcov使用注意事項
文章轉載:http://m.newbst.com/article18/pooidp.html

成都網站建設公司_創新互聯,為您提供外貿建站用戶體驗微信小程序App開發企業建站網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發