gcc是linux平台下的C、C++ 編譯器
gcov是配合gcc產生覆蓋信息報告的工具;
lcov是將gcov產生的報告信息,以更直觀的方式顯示出來工具
基本的使用方法分為4個階段:
(一)、gcc編譯:產生插裝后的目標文件test、gcov結點文件 test.gcno
#gcc -fprofile-arcs -ftest-coverage -o test test.c
# ls
test test.c test.gcno
說明:參數 fprofile-arcs 和 ftest-coverage 告訴gcc編譯器:(1)在目標文件test 插裝跟蹤代碼;(2)生成供gcov使用 test.gcno [gcov node 文件]。
因此,這里的生成的目標文件比正常編譯的文件大。
(二)、運行目標文件:收集運行覆蓋信息 test.gcda
# ./test
Success -- 這里是運行結果。
# ls
test test.c test.gcno test.gcda
這里test.gcda運行結果,
(三)、gcov產生報告信息: test.c.gcov
#gcov test.c
File 'test.c'
Lines executed: 87.50% of 8
test.c: creating 'test.c.gcov'
#ls
test test.c test.c.gcov test.gcda test.gcno
(四)、lcov:格式化test.c.gcov ,輸出到 test.info文件
#lcov -d . -t 'test' -o 'test.info' -b . -c
說明:
-d . :參數 d指路徑, "." 指當前路徑
-t "name" :指目標文件,這里 是 test
-o "filename" :輸出格式化后的信息文件名
(五)、genhtml:根據信息文件(.info)產生html 文檔,輸出到一個文件夾中
#genhtml -o result test.info
說明: -o directory :參數o (output)后面跟路徑名稱,在當前目錄下創建指定目錄,本例中是result
至此: 可以在result目錄中打開index.html 瀏覽覆蓋信息