您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源軟件測(cè)試解決方案 >
水滴石穿C語言之代碼檢查工具
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/4 11:19:14 ] 推薦標(biāo)簽:

概述

  PC-Lint是一個(gè)歷史悠久,功能異常強(qiáng)勁的靜態(tài)代碼檢測(cè)工具。它的使用歷史可以追溯到計(jì)算 編程的遠(yuǎn)古時(shí)代(30多年以前)。經(jīng)過這么多年的發(fā)展,它不但能夠監(jiān)測(cè)出許多語法邏輯上的隱患,而且也能夠有效地幫你提出許多程序在空間利用、運(yùn)行效率上的改進(jìn)點(diǎn),在很多專業(yè)級(jí)的軟件公司,比如Microsoft, PC-Lint檢查無錯(cuò)誤無警告是代碼首先要過的第一關(guān),我個(gè)人覺得,對(duì)于小公司和個(gè)人開發(fā)而言,PC-Lint也非常重要,因?yàn)榛陂_發(fā)成本考慮,小公司和個(gè)人往往不能拿出很多很全面的測(cè)試,這時(shí)候,PC-Lint的強(qiáng)勁功能可以很好地提高軟件的質(zhì)量。

  功能

  1) PC-Lint是一種靜態(tài)代碼檢測(cè)工具,可以說,PC-LINT是一種更加嚴(yán)格的編譯器 ,不僅可以象普通編譯器那樣檢查出一般的語法錯(cuò)誤,還可以檢查出那些雖然完全合乎語法要求,但很可能是潛在的、不易發(fā)現(xiàn)的錯(cuò)誤。

  2) PC-lint不但可以檢測(cè)單個(gè)文件,也可以從整個(gè)項(xiàng)目的角度來檢測(cè)問題,因?yàn)镃語言編譯器固有的單個(gè)編譯,這些問題在編譯器環(huán)境下很難被檢測(cè),而PC-Lint在檢查當(dāng)前文件的同時(shí)還會(huì)檢查所有與之相關(guān)的文件,可想而知,它會(huì)對(duì)我們有很大的幫助。

  3) PC-lint支持幾乎所有流行的編輯環(huán)境和編譯器,比如Borland C++從1.x到5.x各個(gè)版本、Borland C++ Build、GCC、VC,VC.net、 watcom C/C++、Source insight、intel C/C++等等,也支持16/32/64的平臺(tái)環(huán)境。

  4) 支持Scott Meyes的名著(Effective C++/More Effective C++)中說描述的各種提高效率和防止錯(cuò)誤的方法。

  四步速成PC-Lint概述

  這么好的工具,當(dāng)然是先拿起來用了再說,這里分為四步,保證你馬上可以使用PC-Lint了,當(dāng)然,如果你上手以后,想細(xì)致深入學(xué)習(xí)這個(gè)工具,可以在網(wǎng)上查找相應(yīng)的資料,另外在我的另一個(gè)系列文章《軟件開發(fā)的七種武器》中有一篇是講述 PC-Lint使用的,比這篇要深入細(xì)致一些,如有興趣,也可以看看。

  第一步:安裝&設(shè)置

  安裝和通常的軟件沒有什么不同。

  安裝結(jié)束后在PC-Lint安裝目錄下運(yùn)行CONFIG.exe,各項(xiàng)設(shè)置簡(jiǎn)要解釋如下:

  a) 第一步,給出PC-Lint的安裝路徑和選擇設(shè)置的保存文件。

  b) 第二步,選擇你所使用的C/C++編譯器:比如Visual C++ 6.x。

  c) 第三步,選擇內(nèi)存模式:比如32 bit Flat Model。

  d) 第四步,選擇所使用的庫:比如MFC,OWL,等,可多選,在windows下開發(fā)的一般要選中windows 32 bit。

  e) 第五步,C++編程提出過重要建議的作者,選擇某作者后,他提出的編程建議方面的選項(xiàng)將被打開:比如Scott Meyers,可不選。

  f) 第六步,頭文件的設(shè)置:可在后面步驟中手工添加。

  第二步:整合PC-Lint到選定的編譯環(huán)境

  當(dāng)你在上述第二步中選擇了編譯器后,可以在PC-Lint目錄下找到一個(gè)"env-選用的編輯環(huán)境.lnt"文件,比如對(duì)于Source insight 是env-si.lnt,對(duì)于vc6是env-vc6.lnt。

  打開此文件,根據(jù)上面的描述,配置你的編譯器,下面以VC6為例:

  ·選取菜單 tools | customize.....

  ·選取 Tools 標(biāo)簽

  ·點(diǎn)按主對(duì)話框上方的虛線小方框 New

  ·輸入 name: PC-LINT

  ·輸入 Command: c:lintlint-nt.exe,假設(shè)安裝到此路徑

  ·輸入 Arguments: c:lintstd.lnt ?(FilePath)?7)選擇 (x) Use Output Window

  ·Close

  ·完成后,在tools菜單下會(huì)有一項(xiàng)PC-LINT選項(xiàng)。下面是TOOL配置圖:

第三步:Lint單個(gè)C文件

  a) 打開一個(gè)C文件

  b) 運(yùn)行第2)步集成上的PC-Lint菜單項(xiàng)

  c) LINT結(jié)果會(huì)在一兩秒之內(nèi)出來。告警的解釋可參考LINT安裝目錄下MSG.TXT文件,打開文件,通過查找告警號(hào)碼定位,可以看到比較詳細(xì)的說明。

  第四步:Lint多個(gè)C文件

  a) 在LINT軟件目錄下建立PRJLINT.LNT文件,文件的第一行是使用的LINT配置文件名,從第二行開始,列出想所有要LINT的*.C文件名,一行一個(gè)。如果要把結(jié)果輸出到文件,在前面加上一行"-os(文件名)"(例如:"-os(c:lint esult.txt)")。樣例:YF_Config.lnt

  // 以下為自己想要進(jìn)行Lint的.C文件,

  G:src t t1.c

  G:src t t2.c

  …

  b) 用2)介紹的方法在Source Insight"中介紹的方法增加一條"PC-LINT PROJECT"命令,所有設(shè)置與"PC-LINT"設(shè)置相同,除了

 、"Custom Commands"對(duì)話框中"RUN"編輯框的文字由"C:LINTLINT-NT.EXE filename.lnt %f"改為"C:LINTLINT-NT.EXE PRJLINT.LINT",也是把配置文件名改為PRJLINT.LNT,并去掉未尾的"%f"

  ②設(shè)置的快捷鍵與PC-LINT要區(qū)別開來

  利用下面的DOS命令可以用來得到一堆*.C文件的清單。例如:

 、 列出C:SRC下所有*.C文件,并保存到C:SRCFILELIST.TXT:

  DIR C:SRC*.C /B >C:SRCFILELIST.TXT

 、 列出C:SRC下,包括SRC的子目錄下的所有的*.C文件,,并添加到C:SRCFILELIST.TXT的未尾:

  DIR C:SRC*.C /S/B >>C:SRCFILELIST.TXT

  PC-Lint 重要文件說明

  Msg.txt :解釋告警的內(nèi)容。

  選用的.lnt :包含頭文件的路徑,-i選項(xiàng)。

  env-選用的編輯環(huán)境.lnt :講述如何將PC-lint與對(duì)應(yīng)的編輯環(huán)境結(jié)合起來。

  co-xxx .lnt :選定的編譯器。

  STD.LNT :內(nèi)存模型等全局性東西。

  LIB-xxx.LNT :庫類型的列表,包括標(biāo)準(zhǔn)C /C++庫,MFC庫,OWL庫等等。

  AU-xxx.LNT :C++編程提出過重要建議的作者,選擇某作者后,他提出的編程建議方面的選項(xiàng)將被打開。

  OPTIONS.LNT :反映全局編譯信息顯示情況的選項(xiàng)文件。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd