PC-Lint代碼檢查工具在KEIL5中使用
01 前言
大家平時(shí)調(diào)試程序的時(shí)候會(huì)遇到一些異?,F(xiàn)象,花了大量的時(shí)間Debug發(fā)現(xiàn)是訪(fǎng)問(wèn)越界,變量未初始化等寫(xiě)代碼時(shí)大意造成的。如果我們嚴(yán)格遵循代碼規(guī)范,能盡可能的避免這類(lèi)情況發(fā)生,實(shí)際情況往往是雖然大家都知道優(yōu)秀的代碼規(guī)范是怎樣的,但在具體寫(xiě)代碼的過(guò)程中,卻執(zhí)行的差強(qiáng)人意,很多情況是認(rèn)識(shí)上不夠重視,造成后續(xù)調(diào)試的麻煩,今天就來(lái)介紹專(zhuān)用的代碼檢查工具PC-LINT和PC-LINT在KEIL5中的使用。盡可能的減少此類(lèi)問(wèn)題。
02 PC-LINT介紹
C語(yǔ)言的語(yǔ)法擁有其它語(yǔ)言所沒(méi)有的靈活性,這種靈活性帶來(lái)了代碼效率的提升,但相應(yīng)也使得代碼編寫(xiě)具有很大的隨意性,另外C編譯器不進(jìn)行 強(qiáng)制類(lèi)型檢查,也不做任何邊界檢查,這就增加了代碼中存在隱患的可能性。如果能夠在代碼提交測(cè)試之前發(fā)現(xiàn)這些潛在的錯(cuò)誤,就能夠極大地減輕測(cè)試人員的壓力,減少軟件項(xiàng)目的除錯(cuò)成本,可是傳統(tǒng)的C編譯器對(duì)此已經(jīng)無(wú)能為力,這個(gè)任務(wù)只能由專(zhuān)用的代碼檢查工具完成。PC-Lint偏重 于代碼的邏輯分析一種代碼檢查工具,它能夠發(fā)現(xiàn)代碼中潛在的錯(cuò)誤,比如數(shù)組訪(fǎng)問(wèn)越界、內(nèi)存泄漏、使用未初始化變量等。
PC-Lint是GIMPEL SOFTWARE公司開(kāi)發(fā)的C/C++軟件代碼靜態(tài)分析工具,它的全稱(chēng)是PC-Lint/FlexeLint for C/C++,PC-Lint能夠在Windows、MS-DOS和OS/2平臺(tái)上使用,以二進(jìn)制可執(zhí)行文件的形式發(fā)布,而FlexeLint 運(yùn)行于其它平臺(tái),以源代碼的形式發(fā)布。PC-lint在全球擁有廣泛的客戶(hù)群,許多大型的軟件開(kāi)發(fā)組織都把PC-Lint檢查作為代碼走查的第一道工序。PC-Lint不僅能夠?qū)Τ绦蜻M(jìn)行全局分析,識(shí)別沒(méi)有被適當(dāng)檢驗(yàn)的數(shù)組下標(biāo),報(bào)告未被初始化的變量,警告使用空指針以及冗余的代碼,還能夠有效地幫你提出 許多程序在空間利用、運(yùn)行效率上的改進(jìn)點(diǎn)。
PC-lint的代碼檢查功能
PC-Lint能夠檢查出很多語(yǔ)法錯(cuò)誤和語(yǔ)法上正確的邏輯錯(cuò)誤,PC-Lint為大部分錯(cuò)誤消息都分配了一個(gè)錯(cuò)誤號(hào),編號(hào)小于1000的錯(cuò)誤號(hào)是分配給C 語(yǔ)言的,編號(hào)大于1000的錯(cuò)誤號(hào)則用來(lái)說(shuō)明C++的錯(cuò)誤消息。下表列出了PC-Lint告警消息的詳細(xì)分類(lèi)。
以C語(yǔ)言為例,其中的編號(hào)1-199指的是一般編譯器也會(huì)產(chǎn)生的語(yǔ)法錯(cuò)誤;編號(hào)200-299是PC-Lint程序 內(nèi)部的錯(cuò)誤,這類(lèi)錯(cuò)誤不會(huì)出現(xiàn)在代碼中的;編號(hào)300-399指的是由于內(nèi)存限制等導(dǎo)致的系統(tǒng)致命錯(cuò)誤。編號(hào)400-999中出現(xiàn)的提示信息,是根據(jù)隱藏 代碼問(wèn)題的可能性進(jìn)行分類(lèi)的:其中編號(hào)400-699指的是被檢查代碼中很可能存在問(wèn)題而產(chǎn)生的告警信息;編號(hào)700-899中出現(xiàn)的信息,產(chǎn)生錯(cuò)誤的可 能性相比告警信息來(lái)說(shuō)級(jí)別要低,但仍然可能是因?yàn)榇a問(wèn)題導(dǎo)致的問(wèn)題。編號(hào)900-999是可選信息,他們不會(huì)被默認(rèn)檢查,除非你在選項(xiàng)中指定檢查他們。
03 Keil中如何配置pc-lint
下載安裝pc-lint,網(wǎng)上有很多資源。正常安裝即可。
配置PC-lint
keil MDK中已經(jīng)給出了pc-lint的配置文件,打開(kāi)keil工程,tools--setupPC-lints。如下圖彈窗,按照如下配置
-
先選擇pc-lint執(zhí)行文件。
-
選擇keil安裝下的配置文件ARM/BIN/CO-RV.LINT。
-
選擇頭文件和庫(kù)文件的包含路徑否則編譯找不依賴(lài),可以拷貝工程中的編譯選項(xiàng)配置。點(diǎn)擊OK退出。
配置完成打開(kāi)tools可以看到如下圖選項(xiàng),第一個(gè)檢查當(dāng)前打開(kāi)的源文件,第二個(gè)編譯所有的源文件。
編譯后輸出信息在output窗口中,如下圖。
04 END
借用網(wǎng)上一句話(huà)總結(jié):能通過(guò)pc-lint檢驗(yàn)的程序不一定沒(méi)有問(wèn)題,但通過(guò)了pc-lint檢驗(yàn)的程序,質(zhì)量的提高也是不言而喻的。