版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一代碼靜態(tài)檢查一、實(shí)驗(yàn)?zāi)康恼莆誔C-lint的安裝步驟。了解PC-lint的代碼檢測(cè)功能。二、實(shí)驗(yàn)步驟1)PC-lmt的安裝將pclint.rai-解壓至c:,這樣luit文件就位與c:pcliiit(安裝目錄)下了。將 c:pclmflnt F的 3 個(gè)文件 lib-w32.Int,env-vc6.1iit,co-msc60.1nt拷貝至c:pclint卜,再在安裝目錄下創(chuàng)建std.liit和options.lnt兩個(gè)文件,其中std.hit的內(nèi)容如 下:/contents of std.lntc:pcliiitco-msc60.hitc :pcliiitlib-w32 .hitc:pc
2、lintoptions.lnt -si4 -sp4-inD:Program Files;D:Progiain FilesMicrosoft Visual StudioVC98Includen /end其中-i后面的路徑名為VC的安裝路徑和VC Include文件路徑,根據(jù)自己的修 改便可。options.lnt內(nèi)容可為空,為定制內(nèi)容,以后需要時(shí)再添加。將pclint集成到VC6中去,先配置Imt使之能對(duì)單個(gè)C或C+文件進(jìn)行檢查。在VC的集成開(kāi)發(fā)環(huán)境中添加定制的命令,添加定制命令的方法是選擇工具 欄的【Tools】如圖1-1所示,接著選擇【Tools】下的的【Customize.】命令, 如圖1
3、-2所示。彈出自定義界面,點(diǎn)擊【Tools】標(biāo)簽頁(yè)如圖1-3的界面:File Edit View Insert Project (Tld Window Help圖1-1選擇Tools工具i ster ControlEtrw LockupControl Test ContainerODE/COM Object Vi ewerMFCPC-Li nt Exprot Project, lutPC Li nt Check Current. FilePCLint Check ProjectCustomize.Options.Macro.Record Quick Macro Ctrl-bShi ft+RFl
4、y Qui ckCtrl+Shi ft+P圖1-2選擇Customize命令Cust oaizeToolsKeyboard Add-ins and Macro Files|H:WINDOWSsystem32regsvr32.exeCommand:Arguments:*S(TargetPath)Commands | Toolbarsinitial directory:廠 Use Output Window|$(TargetDirF Prompt for arguments 廠 Close window on exiting圖1圖14Close圖1-3選擇Tools標(biāo)簽頁(yè)后的界面首先我們添加一個(gè)檢
5、查當(dāng)前文件的工具命令,新建一個(gè)命令條如圖14所示。給 命令條取名為:“ PC-Lint Check Cunent File ”,命令行輸入 C:pclmt8LINT-NT.EXE ,就是PC-Lmt安裝后所在的路徑。參數(shù)行輸入: “-iC:pclint8 -u std.hit env-vc6.1nt $(FilePath)”。-i 為指定路徑的選項(xiàng),指定尋 找文件的路徑。-u為單元檢測(cè)選項(xiàng)。std.hit env-vc6.1nt分別為兩個(gè)選項(xiàng)文件,其 所在的路徑由-1指定。后面的”$(FilePath)”為文件的文件名包括文件的路徑。工 具的初始化目錄為文件的目錄(SFileDu)。最后不要忘
6、了勾選“Use Output Window”選項(xiàng),這樣PC-Lmt會(huì)將信息輸出到Output窗I I中。選擇在OutPut中輸出配置完舊波們可以看看工具條中增加了一行,如圖1.5所 示:Source Browser.Alt+F12Source Browser.Alt+F12Close SourFilsRegister ControlErrw LockupActiveX Control Test Contain空A OLE/CON Object ViewerA Sgy+MFC TracerPC Li nt Exprot Project. IntrC-Lint Check Ciirrent Fil
7、RwgysarC-Lint Check Ciirrent FilFC-LintChck Fr6jeetFC-LintChck Fr6jeetCustomize.Options.a Macro.Record Quick Macro Ctrl+Shi ft+RFl&y Qui ck Mw心 Ctrl+Shi ft+P圖15增加命令后的界面2)PC-lmt檢測(cè)功能實(shí)驗(yàn)題1:char *report( int m. hit n, char *p ) (int result;char *temp;long nm;int i, k, kk;char naine12 = HJoe JakesonH;mn =
8、 n * m;temp = p = ,M, ? “null” : p;fbr( i = 0; i 0 ) result = 1;else if( kk FinishCancel圖1-6新建Hello World工程然后將實(shí)驗(yàn)題1中的代碼粘貼到工程的代碼中,最后將這個(gè)工程代碼所倚賴(lài)的包 含目錄手工添加到配置文件中,因?yàn)榇a檢查要搜索stdafx.h這個(gè)預(yù)編譯文件, 所以這里要手工添加工程代碼所在的目錄。用記事本打開(kāi)std.lnt,在文件中添加一 行:-iF:projectpclint_testo /添加時(shí)注意應(yīng)是自己的工程目錄。-iF:piojectpclmt_testH就是例子工程所在的目錄(
9、stdafx.h就在這個(gè)目錄)。如果 你的工程比較龐大,頭文件包含目錄很多,就需要將這些目錄一一添加到配置文 件。在確保代碼輸入沒(méi)有錯(cuò)誤之后(有錯(cuò)誤頁(yè)沒(méi)關(guān)系,PC-Lmt會(huì)檢查出錯(cuò)誤), 就可以開(kāi)始代碼檢查了。例子工程,打開(kāi)要檢查的代碼文件,本例是 tpcliiit_test.cpp,然后選擇【Tools】菜單下的“PC_LINT Check Current File”命令, Output窗I輸出對(duì)本文件的檢查結(jié)果。請(qǐng)對(duì)結(jié)果進(jìn)行分析o當(dāng)然在命令行中使用也很簡(jiǎn)單,進(jìn)入到要檢查的文件目錄,然后輸入命令:luit -iC:pcliiit8 -u std.lnt env-vc6.1iit pclmt_
10、test.cpp檢查后的結(jié)果和在VC環(huán)境中一樣。實(shí)驗(yàn)題2:#mclude class Xint *p;public:X。( p = new mt20; void uut()( memset( p. 20, a); X()( delete p; ;請(qǐng)用PC-lmt檢測(cè)上述代碼,并分析檢測(cè)信息,對(duì)源代碼進(jìn)行修正。實(shí)驗(yàn)題3:祥include typedef int COUNT;typedef char* STRING;void tj(STRING s,COUNT a)(COUNT i;fbr(i=O ;si!=0 ;i+) (if(si=A, & siv=z)a0+;else if(si=ta, &
11、 si=。& siS(TargetNaine).hitMo 初始化目錄輸入 “S(FileDir)”,最后勾選uUse Output Window”選項(xiàng),如圖1-7所示。+linebuf表示是加倍行緩沖的大小, 最初是600 bytes,行緩沖用于存放當(dāng)前行和你讀到的最長(zhǎng)行的信息。由于有可 能項(xiàng)目中的文件會(huì)很多,所以對(duì)緩沖加倍來(lái)解析文件工程文件。其實(shí)工程文件 (*.dsp)也就是個(gè)ASCD碼文件,我們可以用記事本打開(kāi)看看里面的內(nèi)容。里面包 括模塊名,預(yù)編譯宏,路徑等。Lint就是通過(guò)解析這個(gè)文件來(lái)得到與項(xiàng)目相關(guān)的 文件名等信息。實(shí)質(zhì)上就是解析項(xiàng)目文件中的“SOURCE= ”符號(hào)。$(Targe
12、tName) 是VC定義的宏表示的是工程名。通過(guò)重定向這個(gè)符號(hào)“”可以將從項(xiàng)目文件 解析的文件名等信息寫(xiě)到文件$(TargetName).lnt項(xiàng)目選項(xiàng)文件中。對(duì)項(xiàng)目進(jìn)行檢 查時(shí)要利用此選項(xiàng)文件。圖17定制導(dǎo)出項(xiàng)目選項(xiàng)文件定制完后點(diǎn)擊close關(guān)閉。然后點(diǎn)擊“PC-LintExprotProject.lnt”命令,會(huì)在 項(xiàng)目的當(dāng)前文件夾下生成一個(gè)以項(xiàng)目文件字后綴名為lint的文件。本例中為 “pclint_test.lnt。里面的內(nèi)容如圖1-8所示。B pclint.test. Ini - 記事本0叵I區(qū)I文件 編輯迫)格式)查看幫助/* Generated From file: pclinttest.dsp */-dWIN32一-d_DEBUGCONSOLE-dZtIBCSpclint_test.cppStdAFx.cpp圖 1-8 pclinCtest.hit 內(nèi)容生成完項(xiàng)目選項(xiàng)文件后,接下來(lái)是定制對(duì)項(xiàng)目進(jìn)行檢查的命令。還是照定制檢查 文件和生成項(xiàng)目選項(xiàng)文件一樣,新建命令,在命令行中輸入 uC:pcliiit8 LINT-NT.EXE在參數(shù)中輸入:-iC:pclint8 +ffii std.hit env-vc6.1iit $(TargetNaine).liit$(TaigetName).txt,o 初始化目錄輸入 “S(FileDir)”,如圖 1-9 所示。+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品集中采購(gòu)政策解讀
- 二零二五年度婚禮籌備與協(xié)調(diào)服務(wù)合同2篇
- 2024甜品店信息化建設(shè)與系統(tǒng)采購(gòu)合同3篇
- 二零二五年度物業(yè)公司應(yīng)急物資儲(chǔ)備與管理合同2篇
- 2024標(biāo)的為城市軌道交通建設(shè)的監(jiān)理合同
- 《應(yīng)聘前的準(zhǔn)備》課件
- 二零二五年度電力設(shè)施運(yùn)維及供電合同范本3篇
- 二零二五年度國(guó)際會(huì)展中心展位租賃及展會(huì)策劃合同
- 馬克思政治經(jīng)濟(jì)學(xué)習(xí)題及答案
- 坐班辦公室職員勞動(dòng)合同三篇
- 2022閥門(mén)制造作業(yè)指導(dǎo)書(shū)
- 科技創(chuàng)新社團(tuán)活動(dòng)教案課程
- 建筑結(jié)構(gòu)加固工程施工質(zhì)量驗(yàn)收規(guī)范表格
- 部編版語(yǔ)文六年級(jí)上冊(cè)作文總復(fù)習(xí)課件
- SHS5230三星指紋鎖中文說(shuō)明書(shū)
- 無(wú)水氯化鈣MSDS資料
- 專(zhuān)利產(chǎn)品“修理”與“再造”的區(qū)分
- 氨堿法純堿生產(chǎn)工藝概述
- 健康管理專(zhuān)業(yè)建設(shè)規(guī)劃
- 指揮中心大廳及機(jī)房裝修施工組織方案
- 真心英雄合唱歌詞
評(píng)論
0/150
提交評(píng)論