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