翻譯|使用教程|編輯:況魚(yú)杰|2020-11-18 15:26:06.717|閱讀 918 次
概述:本文將會(huì)介紹如何在靜態(tài)分析工具PC-lint Plus無(wú)需分析庫(kù)頭就進(jìn)行MISRA檢查。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
相關(guān)鏈接:
PC-lint Plus是一種靜態(tài)分析工具,通過(guò)分析C和C ++源代碼來(lái)發(fā)現(xiàn)軟件中的缺陷。與編譯器一樣,PC-lint Plus會(huì)解析源代碼文件,執(zhí)行語(yǔ)義分析,并構(gòu)建一個(gè)抽象語(yǔ)法樹(shù)來(lái)表示程序。PC-lint Plus采用各種機(jī)制,包括數(shù)據(jù)流分析,數(shù)值跟蹤,讀寫(xiě)分析,強(qiáng)類型檢查,功能語(yǔ)義驗(yàn)證和許多其他技術(shù),來(lái)提供對(duì)單個(gè)文件和整個(gè)項(xiàng)目強(qiáng)大而全面的分析。
如果您查看MISRA作者文件:
	au-misra1.lnt
au-misra2.lnt
au-misra3.lnt
au-misra-cpp.lnt
您會(huì)發(fā)現(xiàn)它們顯式啟用了庫(kù)頭的消息輸出。 例如,在au-misra3.lnt中,您將看到規(guī)則4.9的以下條目:
/**** Dir 4.9 (Adv) ************/
    +e9026               /* function-like macro defined */
    +elib(9026)
    -append(9026,[MISRA 2012 Directive 4.9, advisory])
此處,相關(guān)選項(xiàng)為+ elib(9026):它針對(duì)出現(xiàn)在庫(kù)頭中的函數(shù)式宏定義請(qǐng)求消息9026的輸出。
之所以要進(jìn)行明確設(shè)置,是因?yàn)槠囆袠I(yè)軟件可靠性協(xié)會(huì)(MISRA)標(biāo)準(zhǔn)通常假定開(kāi)發(fā)人員可以控制目標(biāo)系統(tǒng)(在汽車行業(yè)中很常見(jiàn))的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)和系統(tǒng)庫(kù)實(shí)現(xiàn)的內(nèi)容,并且 因此,需要開(kāi)發(fā)人員在必要時(shí)分析和更正其庫(kù)的內(nèi)容。
如果您的安排有所不同(例如,如果您不打算編譯自己的標(biāo)準(zhǔn)和系統(tǒng)庫(kù)版本),則可以顯式禁用庫(kù)代碼的消息輸出。 一種方法是使用-wlib()選項(xiàng)切換警告級(jí)別,從而“擦除”庫(kù)區(qū)域的消息抑制狀態(tài)。 這必須在引用MISRA作者文件之后完成。 例:
au-misra3.lnt // enables Elective Notes for library code -wlib(4) // raises the warning level -wlib(1) // lowers the warning level (and disables messages)
還請(qǐng)注意控制Lint是否將標(biāo)頭視為“庫(kù)”標(biāo)頭的選項(xiàng); 請(qǐng)參見(jiàn)Lint手冊(cè)中的第6章(“庫(kù)”)。
本文內(nèi)容就是這樣了,希望對(duì)您有所幫助!您可以繼續(xù)關(guān)注我們慧都網(wǎng),了解更多產(chǎn)品資訊~也可以下載PC-lint Plus試用版免費(fèi)評(píng)估~
相關(guān)內(nèi)容推薦:
PC-lint Plus v1.3.5更新內(nèi)容>>>
想要購(gòu)買(mǎi)PC-lint Plus正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:Gimpel Software