原創(chuàng)|使用教程|編輯:張莉|2025-09-23 11:34:19.953|閱讀 42 次
概述:在使用Parasoft C/C++test進行靜態(tài)代碼分析時,可能會遇到工具未實際檢查任何文件的狀況。該問題通常與構(gòu)建配置或文件包含范圍相關(guān)?;诔R姂?yīng)用場景,系統(tǒng)梳理了五種可能導致此問題的原因及其解決方案,幫助開發(fā)團隊快速定位和解決此類問題,確保代碼質(zhì)量檢測工作的順利開展。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在使用Parasoft C/C++test進行靜態(tài)代碼分析時,可能會遇到工具未實際檢查任何文件的狀況。該問題通常與構(gòu)建配置或文件包含范圍相關(guān)。基于常見應(yīng)用場景,系統(tǒng)梳理了五種可能導致此問題的原因及其解決方案,幫助開發(fā)團隊快速定位和解決此類問題,確保代碼質(zhì)量檢測工作的順利開展。
第一種情況
可以先看控制臺的輸出,如果有如下輸出:
那么考慮構(gòu)建選項的問題。一般來說,這種輸出代表C/C++test沒有構(gòu)建選項。很可能是創(chuàng)建項目這邊出現(xiàn)了問題。
第二種情況
如果沒有以上說的控制臺的輸出,那么可以去查看BDF的內(nèi)容是否正常,也就是包含構(gòu)建信息。如果不清楚是否正常,一個簡單的方式是可以查看BDF中是否有項目中參與編譯的.c或者.cpp文件。
比較典型的,IAR 8.x版本項目,如果沒有在生成BDF的時候加上 --cpptesttraceResponseFileOption=-f ,那么生成的BDF是有問題的:
解決辦法要看什么原因造成的BDF不正常。
第三種情況
如果BDF看起來是正常的,但是靜態(tài)分析還是沒有檢查文件。這個時候需要考慮選中運行靜態(tài)分析的文件是否參與了構(gòu)建。
比較典型的,示例項目ATM中參與構(gòu)建的只有四個.cpp文件,TestObjectFactory.cxx沒有參與構(gòu)建,如果只選擇這個文件運行測試,就會出現(xiàn)這種報錯:
除此之外,BDF中不會記錄頭文件,所以如果要測頭文件,需要選中頭文件以及包含了這個頭文件的源文件一起測試。
第四種情況
如果BDF看起來是正常的,使用命令行選中測試的是整個項目,但是添加了-include或者-exclude參數(shù),那么可以考慮刪除這些參數(shù)運行,查看是否是這些參數(shù)的干擾。
一般來說,如果是屬于這種情況,那么在導入項目之后,控制臺可能會出現(xiàn)類似“發(fā)現(xiàn)以下文件的構(gòu)建選項”這種語句:
第五種情況
出現(xiàn)第四種情況的截圖,如果沒有設(shè)置限定范圍的語句,那么還有可能是參與本次編譯的文件并沒有成功導入進來。如果有界面的話,可以查看參與編譯的文件是否導入進來了。
解決辦法:界面的話,可以選中項目,右擊找到新建->文件夾:
選擇高級->鏈接到其他位置(鏈接文件夾):
然后把缺少的文件的目錄鏈接進來就可以了。
如果是命令行,可以在運行cpptestcli的時候,加上參數(shù)-property bdf.import.location=xxx,這里的值可以考慮設(shè)置為要測文件的目錄,或者要測文件們的共同目錄。
或者也可以考慮在-settings參數(shù)后面的.properties文件中加上bdf.import.location=xxx。
通過以上五種情況的排查與處理,可系統(tǒng)性地解決C/C++test未檢查文件的問題,確保靜態(tài)分析的正常執(zhí)行,Parasoft C/C++test作為專業(yè)的代碼質(zhì)量保障工具,其強大的靜態(tài)分析和單元測試功能能夠顯著提升嵌入式軟件的可靠性和安全性,為符合功能安全標準(如 ISO 26262)提供有力支持。
關(guān)于慧都
慧都是一家行業(yè)數(shù)字化解決方案公司,專注于軟件、石油與工業(yè)領(lǐng)域,以深入的業(yè)務(wù)理解和行業(yè)經(jīng)驗,幫助企業(yè)實現(xiàn)智能化轉(zhuǎn)型與持續(xù)競爭優(yōu)勢。在軟件工程領(lǐng)域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權(quán)采購、技術(shù)選型、個性化維保等服務(wù),幫助客戶實現(xiàn)技術(shù)合規(guī)、降本增效與風險可控。
慧都科技作為Parasoft公司在中國區(qū)的官方授權(quán)合作伙伴,為國內(nèi)企業(yè)提供Parasoft C/C++test產(chǎn)品的正版授權(quán)、定制化部署與全生命周期技術(shù)支持與服務(wù)。我們致力于助力客戶精準貫徹功能安全標準、全面提升軟件開發(fā)效率、有效管控項目風險,最終構(gòu)建符合國際標準的高質(zhì)量軟件體系。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn