轉自: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版本。
2.cppcheck安裝
1: tar jxvf cppcheck-1.49.tar.gz2: cd cppcheck-1.493: make4: make install如果make過程中報如下錯誤:
則需要安裝pcre第三方正則表達式庫
安裝完再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分析結果
如下截取了工程的部分分析結果:
這里主要是說這些變量都應該設置為const變量。
5.cppcheck可以分析錯誤的類型
1: 自動變量檢查2: 數組的邊界檢查3: class類檢查4: 過期的函數,廢棄函數調用檢查5: 異常內存使用,釋放檢查6: 內存泄漏檢查,主要是通過內存引用指針7: 操作系統資源釋放檢查,中斷,文件描述符等8: 異常STL 函數使用檢查9: 代碼格式錯誤,以及性能因素檢查-
-
Echo Chen:Blog.csdn.net/chen19870707



