天天看點

靜态代碼檢查工具 cppcheck 的使用

      CppCheck是一個C/C++代碼缺陷靜态檢查工具。不同于C/C++編譯器及其它分析工具,CppCheck隻檢查編譯器檢查不出來的bug,不檢查文法錯誤。所謂靜态代碼檢查就是使用一個工具檢查我們寫的代碼是否安全和健壯,是否有隐藏的問題。

比如無意間寫了這樣的代碼: 

int n = 10;
char* buffer = new char[n];
buffer[n] = 0;
           

         這完全是符合文法規範的,但是靜态代碼檢查工具會提示此處會溢出。也就是說,它是一個更加嚴格的編譯器。目前 使用比較廣泛的C/C++靜态代碼檢查工具有cppcheck 和  pc-lint等。 pc-lint是資格最老,最強力的代碼檢查工具,但是是收費軟體,并且配置起來有一點點麻煩。

CppCheck 是免費的開源軟體。使用起來也很友善。 

從 http://cppcheck.sourceforge.net/   下載下傳最新的cppcheck。

使用方式:

一、GUI方式:安裝完就可以使用裡面的cppcheck-gui來檢測代碼。界面如下:

靜态代碼檢查工具 cppcheck 的使用

二、指令行方式:

靜态代碼檢查工具 cppcheck 的使用

三、內建到IDE開發環境中使用:

1、VS

參考這裡(http://avitebskiy.blogspot.tw/2012/10/poor-mans-visual-studio-cppcheck.html),可以友善的把cppcheck嵌入到vs,然後可以友善的對一個檔案進行檢查,而且支援錯誤跳轉。

  • click the Add button
  • set the Title, for example Cppcheck
  • set Command to C:\Program Files (x86)\Cppcheck\cppcheck.exe
  • set Arguments to --quiet --verbose --template=vs $(ItemPath)
  • set Initial Directory to $(ItemDir)
  • make sure Use Output window checkbox is enabled
  • click on the Move Up button repeatedly until your entry is at the top of the list, this will make it easier to identify you new command as you can count on it being calledTools.ExternalCommand1
  • click OK.

2、Qt Creator

     在QtCreator中點選:tools=>external=>config...=>add 彈出如下對話框:

靜态代碼檢查工具 cppcheck 的使用

填入下列參數:

靜态代碼檢查工具 cppcheck 的使用

設定完後就可以用cppcheck檢查指定目錄下的代碼檔案:tools=>external=>cppcheck 開始檢查。

參考文章: http://www.cnblogs.com/lancidie/archive/2013/04/13/3019505.html

以下這篇文章也非常詳細:http://blog.csdn.net/akof1314/article/details/7477014

繼續閱讀