cppcheck


Cppcheck是一個C/C++代碼缺陷靜態檢查工具,不同於C/C++編譯器及其它分析工具,只檢查編譯器檢查不出來的bug,不檢查語法錯誤,支持C/C++代碼;作為編譯器的一種補充檢查,對產品的源代碼執行嚴格的邏輯檢查,執行的檢查包括:

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

 

啟用消息

默認情況下,只顯示錯誤消息,可以通過 --enable 命令啟用更多檢查。

啟用警告消息:

cppcheck --enable=warning file.c

啟用性能消息:

cppcheck --enable=performance file.c

啟用信息消息:

cppcheck --enable=information file.c

由於歷史原因 --enable=style 可以啟用警告、性能、可移植性和樣式信息。當使用舊 XML 格式時,這些都由 style 表示:

cppcheck --enable=style file.c

啟用警告和性能消息:

cppcheck --enable=warning,performance file.c

啟用 unusedFunction 檢查。這不能通過 --enable=style 啟用,因為不會在庫中正常工作。

cppcheck --enable=unusedFunction file.c

啟用所有消息:

cppcheck --enable=all

不確定消息

默認情況下,如果確定,Cppcheck 只顯示錯誤消息。如果使用 --inconclusive,當分析不確定時,也會寫錯誤消息。

cppcheck --inconclusive path

 

這當然會導致錯誤的警告,即使在沒有 bug 的情況下,也可能會報 bug。如果可以接受錯誤的警告,可以使用此命令。

 

保存結果到文件中

很多時候,會希望將結果保存在一個文件中,可以使用 shell 的管道重定向錯誤輸出到一個文件:

cppcheck file.c 2> err.txt

 

多線程檢查

選項 -j 用於指定需要使用的線程數,例如,使用 4 個線程檢查文件夾中的文件:

cppcheck --enable=warning file.c

 

參考

http://blog.csdn.net/liang19890820/article/details/52778149

 

 官方文檔

http://cppcheck.sourceforge.net/manual.html#idm18

 


免責聲明!

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



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