(轉)gcov、lcov與genhtml 使用心得


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 瀏覽覆蓋信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM