原創(chuàng)|使用教程|編輯:鄭恭琳|2020-06-16 11:14:40.547|閱讀 852 次
概述:在此文章中,我將與您分享一些有關(guān)為Visual Studio Code編輯器配置和使用我們?nèi)碌腃/C++test靜態(tài)分析擴(kuò)展的提示。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在此文章中,我將與您分享一些有關(guān)為Visual Studio Code編輯器配置和使用我們?nèi)碌腃/C++test靜態(tài)分析擴(kuò)展的提示。
Visual Studio Code(VS Code)編輯器的普及正在迅速增長(zhǎng)。在最新的Stack Overflow年度開發(fā)人員年度調(diào)查中,VS Code占據(jù)了開發(fā)環(huán)境和工具類別。
它快速、簡(jiǎn)單、可自定義、可擴(kuò)展,并且可以在三個(gè)領(lǐng)先的開發(fā)平臺(tái)上運(yùn)行:Windows,Linux和Mac。它的受歡迎程度不僅限于使用JavaScript或TypeScript開發(fā)的團(tuán)隊(duì)。我們經(jīng)??吹剿?用于開發(fā)安全關(guān)鍵的C/C++軟件。
VS Code得到了市場(chǎng)上廣泛的擴(kuò)展生態(tài)系統(tǒng)的支持。但是,C/C++靜態(tài)分析的擴(kuò)展數(shù)量有限。
在發(fā)布之前,沒有什么可以幫助您遵守MISRA,CERT和AUTOSAR C++編碼標(biāo)準(zhǔn)的,而無需離開編輯器檢查結(jié)果。我的意思是,完整的標(biāo)準(zhǔn)支持Clang-Tidy很酷,但僅涵蓋了這些標(biāo)準(zhǔn)的一小部分。
我們決定填補(bǔ)這一空白,并為這個(gè)出色的編輯器提供擴(kuò)展,以幫助您根據(jù)自己喜歡的編碼標(biāo)準(zhǔn)檢查您剛剛編寫的代碼,查看結(jié)果并修復(fù)或隱藏它們——所有這些均在VS Code內(nèi)部。
在本文中,我將重點(diǎn)介紹C/C++的靜態(tài)分析,但我們還支持帶有Parasoft dotTEST靜態(tài)分析擴(kuò)展功能的C#。
使用Visual Studio Code編輯器的Parasoft靜態(tài)分析擴(kuò)展來啟動(dòng)和運(yùn)行的最簡(jiǎn)單方法是通過Microsoft Marketplace。
啟動(dòng)VS Code,然后轉(zhuǎn)到擴(kuò)展程序(Ctrl + Shift + X)。在搜索字段中,鍵入“C++test”并安裝擴(kuò)展。
安裝后,擴(kuò)展程序?qū)⑼ㄟ^以下消息歡迎您:
該消息告知,為了運(yùn)行帶有VS Code擴(kuò)展名的靜態(tài)分析,您需要,這是C/C++test Visual Studio使用的命令行靜態(tài)分析引擎。代碼擴(kuò)展。
后,只需將其解壓縮到您喜歡的任何目錄中,然后安裝試用(或完整)許可證。您的許可證需要包含命令行功能。您可以通過編輯分發(fā)主目錄中的cpptestcli.properties文件來安裝許可證,或?qū)pptestcli.properties文件放在您的主目錄中,然后在其中放置許可信息。
對(duì)于此處的實(shí)驗(yàn),我們使用C/C++test附帶的Timer示例項(xiàng)目。在VS Code中,切換到Explorer,然后使用“將文件夾添加到工作區(qū)...”將
要執(zhí)行擴(kuò)展的簡(jiǎn)單配置,請(qǐng)?jiān)跔顟B(tài)欄中單擊C/C++test快速入門:
您會(huì)看到以下配置選項(xiàng):
設(shè)置如下:
對(duì)于您的實(shí)際項(xiàng)目,您可能需要配置其他設(shè)置才能開始使用靜態(tài)分析。我們稍后再討論?,F(xiàn)在,已經(jīng)進(jìn)行了這些設(shè)置,請(qǐng)在資源管理器中選擇Timer文件夾。
從上下文菜單中,選擇“C/C++test:分析所選文件…”。OUTPUT面板將開始顯示有關(guān)靜態(tài)分析后續(xù)步驟的信息。
分析完成后,“PROBLEMS”問題面板將顯示靜態(tài)分析報(bào)告的所有結(jié)果。它應(yīng)如下所示:
您可以通過單擊“問題”面板中的行來分析發(fā)現(xiàn)。當(dāng)您選擇一個(gè)發(fā)現(xiàn)時(shí),C/C++test擴(kuò)展將帶您到源代碼,您可以在其中查看報(bào)告問題的原因。
如果原因尚不清楚,請(qǐng)在“問題”面板中右鍵單擊結(jié)果,然后選擇“顯示<靜態(tài)分析規(guī)則>的文檔”。它將向您顯示詳細(xì)說明。
如果您希望忽略發(fā)現(xiàn),請(qǐng)右鍵單擊并選擇“禁止違反
或者,您可以從視圖中“刪除違反
我提到過,對(duì)于您的實(shí)際項(xiàng)目,您可能需要再配置一個(gè)選項(xiàng)才能開始使用靜態(tài)分析。這與構(gòu)建信息有關(guān),更具體地說,與編譯命令行有關(guān)。
靜態(tài)分析引擎需要知道要分析的每個(gè)文件的編譯命令行。根據(jù)項(xiàng)目的構(gòu)建方式,可以應(yīng)用不同的策略來提供此信息。
讓我們來看看我們的Timer示例如何發(fā)生。
切換到“輸出”面板,該面板仍應(yīng)包含我們分析運(yùn)行的輸出。
一直向上滾動(dòng)。在輸出的第二行中,您應(yīng)該看到擴(kuò)展執(zhí)行的命令行。它將從“cpptestcli”開始。有趣的部分在此命令行的末尾。
在這種情況下,C/C++test靜態(tài)分析引擎被告知“跟蹤”構(gòu)建以獲取所需的編譯命令行信息。您也可以將此策略應(yīng)用于其他構(gòu)建系統(tǒng)。效果很好:
Cpptestcli執(zhí)行在-trace選項(xiàng)之后指定的build命令。將自動(dòng)掃描構(gòu)建信息并將其保存到cpptest.bdf文件中,該文件現(xiàn)在在“Timer”文件夾中可見,并用作靜態(tài)分析的輸入。
一切都很好,但是如果我想重新運(yùn)行靜態(tài)分析會(huì)怎樣?好吧,使用默認(rèn)設(shè)置,C/C++test將重新運(yùn)行您的構(gòu)建。對(duì)于實(shí)際項(xiàng)目來說不是一個(gè)好的選擇。
更改方法如下:
您將看到如下所示的擴(kuò)展程序設(shè)置:
:
構(gòu)建信息配置是“命令行模式”設(shè)置的一部分。在設(shè)置面板中,選擇“計(jì)時(shí)器”(在“用戶和工作區(qū)”旁邊)以僅修改“計(jì)時(shí)器”文件夾的設(shè)置。
轉(zhuǎn)到命令行模式,移至末尾,然后自定義模式,將“-trace make clean all”替換為“-input ${workspaceFolder}/cpptest.bdf”,如下所示:
使用此設(shè)置,無論何時(shí)運(yùn)行靜態(tài)分析,C/C++test都不會(huì)重新執(zhí)行構(gòu)建過程,而只是加載在第一次構(gòu)建過程中生成的cpptest.bdf的內(nèi)容,并且可以更快地執(zhí)行分析。您可以在了解有關(guān)構(gòu)建數(shù)據(jù)文件的更多信息。
對(duì)于那些使用CMake進(jìn)行項(xiàng)目的人來說,還有一個(gè)選項(xiàng)可以簡(jiǎn)化設(shè)置過程。C/C++test可以將可由CMake自動(dòng)生成的compile_commands.json文件作為分析的輸入。
在本文中為我們的Timer示例配置compile_commands.json文件生成。
完成后,再訪問設(shè)置面板一次(Ctr+Shift+P,鍵入“C/C++test: Quick Start”,然后選擇“打開設(shè)置...”或使用“C/C++test”在狀態(tài)欄中的快速入門)。
轉(zhuǎn)到命令行模式字段,然后如下所示進(jìn)行修改:
于是,您可以使用CMake構(gòu)建自動(dòng)生成的文件,并簡(jiǎn)化設(shè)置。
擴(kuò)展中還有一些其他有趣的選項(xiàng)和命令,我邀請(qǐng)您進(jìn)行探索。例如,您可以從CI/CD管道中生成的文件中導(dǎo)入靜態(tài)分析結(jié)果,并在本地進(jìn)行查看。
希望本文對(duì)Visual Studio Code編輯器的C/C++test擴(kuò)展有所幫助。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn