翻譯|使用教程|編輯:李顯亮|2021-04-26 11:02:11.087|閱讀 282 次
概述:本文針對(duì)C和C ++的首選靜態(tài)分析工具 PC-lint Plus 最新問(wèn)題,進(jìn)行了羅列和解答。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(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ǔ)法樹來(lái)表示程序。PC-lint Plus采用各種機(jī)制,包括數(shù)據(jù)流分析,數(shù)值跟蹤,讀寫分析,強(qiáng)類型檢查,功能語(yǔ)義驗(yàn)證和許多其他技術(shù),來(lái)提供對(duì)單個(gè)文件和整個(gè)項(xiàng)目強(qiáng)大而全面的分析。
Q1:如何在不分析庫(kù)頭的情況下進(jìn)行MISRA檢查?
A:如果你在MISRA的作者文件中尋找:
你會(huì)發(fā)現(xiàn)他們明確地啟用了庫(kù)頭的消息輸出。例如,在au-misra3.lnt中,你會(huì)看到規(guī)則4.9的這個(gè)條目。
/**** 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ù)頭內(nèi)的類似函數(shù)的宏定義輸出9026信息。
這是明確設(shè)置的,因?yàn)槠?工業(yè)軟件可靠性協(xié)會(huì)(MISRA)的標(biāo)準(zhǔn)通常假定開發(fā)者對(duì)目標(biāo)系統(tǒng)的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)和系統(tǒng)庫(kù)實(shí)現(xiàn)的內(nèi)容有控制權(quán)(在汽車工業(yè)中,這很常見),因此要求開發(fā)者在必要時(shí)分析和糾正他們庫(kù)的內(nèi)容。
如果你的安排不同(例如,如果你不打算編譯你自己版本的標(biāo)準(zhǔn)庫(kù)和系統(tǒng)庫(kù)),那么你可以明確地禁用庫(kù)代碼的消息輸出。一種方法是使用-wlib()選項(xiàng)來(lái)切換警告級(jí)別,從而 "擦除 "庫(kù)區(qū)的消息抑制狀態(tài);這必須在對(duì)MISRA作者文件的引用之后進(jìn)行。例如:
au-misra3.lnt // enables Elective Notes for library code -wlib(4) // raises the warning level -wlib(1) // lowers the warning level (and disables messages)
還要注意控制Lint是否將一個(gè)頭文件視為 "庫(kù) "頭文件的選項(xiàng)。
Q2:如何更新PC-lint Plus或確定最新的可用版本?
新版本會(huì)在新聞頁(yè)面上公布,并通過(guò)電子郵件分發(fā)給注冊(cè)客戶。如果你使用的是舊版本,并且沒(méi)有收到更新郵件,請(qǐng)聯(lián)系sales@gimpel.com并提供您的序列號(hào)。
未完待續(xù)~
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn