靜態檢查工具——PClint


簡介:

  pc_lint是GIMPEL SOFTWARE公司開發的C/C++軟件代碼靜態分析工具,它的全稱是PC-Lint/FlexeLint for C/C++, pc_lint能夠在Windows、MS-DOS和OS/2平台上使用,以二進制可執行文件的形式發布,而FlexeLint 運行於其它平台,以源代碼的形式發布。 

  工具類型:靜態工具。

  支持平台:Windows。

  使用方法:可配置到VS外部工具,也可以直接命令進行檢查。

  輸出文件:直接在VS輸出窗口中輸出。或者輸出到文件

  查看問題:如果在VS窗口輸出,雙擊報錯行,可以直接跳轉到問題代碼位置。

檢查范圍:

  pc_lint不僅能夠對程序進行全局分析,識別沒有被適當檢驗的數組下標,報告未被初始化的變量,警告使用空指針以及冗余的代碼,還能夠有效地幫你提出許多程序在空間利用、運行效率上的改進點。從某種意義上說。 pc_lint是一種更加嚴格的編譯器,它除了可以檢查出一般的語法錯誤外,還可以檢查出那些雖然符合語法要求,但很可能是潛在的、不易發現的錯誤。

pc_lint的注釋:

   //lint -save -e***

  代碼段;//帶有error ***的告警信息

  //lint –restore

VS2005配置方法:

  1、首先,將獲取到的pc_lint壓縮包解壓到C盤根目錄,注意放到其他目錄會導致pc_lint不好用。

  2、配置VS路徑:打開pc_lint對VS的配置文件(C:\pclint\std_VS2005.lnt),配置好本地的VS路徑,如下圖所示。

  

  3、配置將要檢測的本地代碼路徑:繼續配置剛剛的文件(C:\pclint\std_VS2005.lnt),一鍵替換成要檢測的本地代碼路徑。(此處很重要,每次進行工程檢測時,都需要重新替換,保證檢測的工程能對得上)

    4、修改檢測規則配置:打開檢測規則配置文件(C:\pclint\options.lnt),如下圖:類型1代表當前的檢測規則;類型2這種首位出現//的都算作是注釋,和沒寫一樣;類型3代表屏蔽的檢測規則。

  

  5、將pc_lint配置到VS2005中:打開VS2005->工具->外部工具->添加

    工具1:(創建工程)

    標題:PC-lint (Project Creation)

    命令:C:\pclint\lint-nt.exe

    參數:-v -os("$(TargetName).lnt") "$(ProjectFileName)"

    初始目錄:$(ProjectDir)

    勾選退出時關閉

    工具2:(對VS當前選中的單個文件進行Check)

    標題:PC-lint (Simple Check)

    命令:C:\pclint\lint-nt.exe

    參數:-i"c:\pclint" std_vs2005.lnt env-vc8.lnt "$(ItemDir)$(ItemFileName)$(ItemExt)"

    初始目錄:$(ItemDir)

    勾選使用輸出窗口

    工具3:(對VS當前選中的單個文件所在的工程目錄下的所有文件進行Check)

    標題:PC-lint (Project Check)

    命令:C:\pclint\lint-nt.exe

    參數:-i"c:\pclint" std_vs2005.lnt env-vc8.lnt "$(TargetName).lnt"

    初始目錄:$(ProjectDir)

    勾選使用輸出窗口

  • 使用方法:

  1、首先,需要檢查配置文件C:\pclint\std_VS2005.lnt是否是待檢查的項目。

  2、檢測單個文件:直接打開想檢測的文件,再依次使用工具1,工具2即可。

  3、檢測工程文件:直接打開工程中的任意一個文件,再依次使用工具1,工具3即可。

  4、貼士:檢測過程中會同時對當前文件引用到的文件進行Check,所以有可能檢測A文件,但是查出的是B文件的問題,這都是有可能的。

  • 查看問題:

  工程檢測速度會比較慢,可以通過VS2005->工具查看是不是已經檢測完成,未完成時會有“(停止)”的字樣,所有工具都可以用這個辦法來判斷。

  檢測結果全部都在輸出窗口中,可以隨時進行切換查看。  

  pc_lint輸出窗口上有三個內容,下面來一一說明下:  

  1、檢測輸出的頭:

  

  2、檢測出的內容輸出:

     有問題的地方會有error顯示。

  3、檢測輸出的尾:輸出結束的標志,同時也標志着所檢測出的問題計數。

 

 

   左側代表沒有檢測出問題,右側代表檢測出了16個問題。

 

命令檢查方法:
  1、_lint壓縮包解壓到C盤根目錄。
  2、進入cmd模式

  3、修改檢測規則配置:打開檢測規則配置文件(C:\pclint\options.lnt),配置方法和上面一致。

  4、檢查文件:Lint-nt option 【文件絕對路徑】

    例如:Lint-nt option /home/jierjiasi/code/dev/Main.cpp。結果會直接輸出到cmd窗口中。

    Lint-nt option /home/jierjiasi/code/dev/*.cpp > LintOutput.txt【參考makefile】。結果輸出到【LintOutput.txt】文件中
    Lint-nt option /home/jierjiasi/code/dev/*.h >> LintOutput.txt【參考makefile】。結果繼續輸出到【LintOutput.txt】文件中

  5、檢查完成后可在輸出文件或窗口中查看問題個數,並尋找error。

 

進階版:自動化檢查

  待續

 


免責聲明!

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



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