C++ 代碼靜態分析工具cppcheck【轉】


 

轉自:http://blog.csdn.net/chen19870707/article/details/42393217

 
 

C++ 代碼靜態分析工具cppcheck

 

  • Author:Echo Chen(陳斌)

  • Email:chenb19870707@gmail.com

  • Blog:Blog.csdn.net/chen19870707

    Date:Jan.1st , 2015

     

    近來游戲進入尾期,已上線運營,需求比較少,可以有時間整理優化下代碼,但是優化如果沒有一個標准,很難有一個實際的效果,所以先從簡單的代碼靜態分析開始,找了許多代碼靜態檢查的工具,splint,pclint、purify,infusion、cppcheck等,但cppcheck文檔最精簡,看起來最容易使用,個人簡單的思路解決復雜問題,所以選擇了cppcheck.

    1.cppcheck下載

    cppcheck現在的版本已經出到1.68,新版本的cppcheck需要C++11的支持,這里選擇最經典的49版本。

    下載地址:cppcheck-1.49.tar.bz2

    2.cppcheck安裝

       1: tar jxvf cppcheck-1.49.tar.gz
       2: cd cppcheck-1.49
       3: make
       4: make install

    如果make過程中報如下錯誤:

    image

    則需要安裝pcre第三方正則表達式庫

    image

    安裝完再make & make install 成功。

    3.cppcheck 使用

    使用cppcheck –h 可以查看幫助,下面簡單介紹下最有用的幾個選項

     

       1: cppcheck . -j 3 --enable=all --xml 2>result.xml

    -j參數指定的是檢查線程的個數,如果需要檢查代碼的量很大,-j參數還是很有用的 
           --enable指定當前指定的檢查級別,可選的參數有all,style,information等

    --xml 是輸出xml的版本

     

    4.cppcheck分析結果

     

    如下截取了工程的部分分析結果:

     

    image

     

    這里主要是說這些變量都應該設置為const變量。

     

    5.cppcheck可以分析錯誤的類型

     

       1: 自動變量檢查
       2: 數組的邊界檢查
       3: class類檢查
       4: 過期的函數,廢棄函數調用檢查
       5: 異常內存使用,釋放檢查
       6: 內存泄漏檢查,主要是通過內存引用指針
       7: 操作系統資源釋放檢查,中斷,文件描述符等
       8: 異常STL 函數使用檢查
       9: 代碼格式錯誤,以及性能因素檢查

     

    -

  • Echo Chen:Blog.csdn.net/chen19870707


免責聲明!

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



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