這是用於VSCODE的C/C ++代碼分析插件,該插件顯示了使用CodeChecker作為後端的Clang static Analyzer和Clang Tidy分析儀檢測到的錯誤報告。

PATH環境變量中。compile_commands.json文件。F9 / Shift-F9 )之間導航


CodeChecker通過讀取生成的編譯數據庫(通常稱為compile_commands.json )並基於此執行特定分析來起作用。
CMake具有內置支持,用於生成編譯數據庫。設置環境變量CMAKE_EXPORT_COMPILE_COMMANDS=ON ,並且編譯數據庫應在您的構建文件夾中。如果您正在為VS代碼使用CMake Tools擴展名,則可以將此標誌添加到Cmake > Build Environment下的擴展設置。
make和其他構建系統沒有內置的支持來生成編譯數據庫,但是CodeChecker可以基於構建命令生成一個。要生成一個,您可以使用命令CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json 。
為了自動化該過程,擴展程序提供了自動運行CodeChecker log命令的方法。首先,在擴展設置中設置CodeChecker > Executor > Log build command ,然後使用VS代碼任務或VS Code命令CodeChecker: Run CodeChecker Log來執行分析。您還可以運行CodeChecker: Preview CodeChecker log in terminal ,以對傳遞給CodeChecker的參數具有更細粒度的控制。
擴展程序使用Codechecker版本6.18.2或更高版本。如果您的安裝路徑不同,或者CodeChecker不在PATH環境變量”中,則可以在Preferences > Settings > Extensions > CodeChecker > Executable path下手動設置其路徑。
擴展程序可以在保存文件時或使用CodeChecker: Analyze命令。您可以通過單擊CodeChecker通知上的“取消”按鈕來停止分析 - 部分結果會自動保存。
該分析是完全配置的,可以使用CodeChecker: Show full command line命令(對於支持的參數,運行CodeChecker analyze --help )來預覽所得的CodeChecker命令行。可以在設置中的“工作區”選項卡上設置當前工作區的設置。也可以對節省的自動分析進行配置。
有關配置選項的詳細信息可以在設置下找到。
擴展名提供以下命令:
| 命令 | 描述 |
|---|---|
CodeChecker: Analyze current file | 使用CodeChecker分析當前打開的源文件。也可以通過單擊Codechecker側面面板中的Re-analyze current file按鈕來調用。當在插件的設置中關閉 Run On Save時有用。 |
CodeChecker: Analyze selected files... | 使用CodeChecker分析用戶選擇的文件。接受多個文件作為輸入。 |
CodeChecker: Analyze entire project | 使用CodeChecker分析整個項目。也可以通過單擊CodeChecker側面面板中的Re-analyze entire project按鈕來調用。警告:完整的分析可能需要幾分鐘甚至數小時的大型項目。 |
CodeChecker: Stop running CodeChecker instance | 停止當前運行的分析。部分結果將保存和更新。 |
CodeChecker: Run CodeChecker log | 通過構建當前項目來更新編譯數據庫。還提供具有自定義用戶指定構建命令的變體。 |
CodeChecker: Preview CodeChecker log in terminal | 當前的CodeChecker日誌命令被粘貼到一個新的終端窗口中,在運行之前可以對其進行編輯。 |
CodeChecker: Show database setup dialog | 顯示對話框以選擇現有彙編數據庫的路徑,或創建新的編譯數據庫。 |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | 在顯示的繁殖路徑的步驟之間移動。您也可以通過CodeChecker的側面面板直接導航到報告的步驟。 默認的鍵鍵: Ctrl-F7 , Ctrl-Shift-F7 。 |
CodeChecker: Show full CodeChecker analyze command line | 顯示用於分析文件的完整codechecker命令行。 如果您想在運行前查看分析儀的選項,或者您想手動運行分析,則有用。 |
CodeChecker: Show Output | 將CodeChecker在編輯器中的輸出焦點。插件的日誌以及以前的CodeChecker運行的輸出將在此處顯示。 |
CodeChecker: Reload metadata | Reloads Codechecker的metadata.json數據。也可以通過單擊Codechecker側面面板上的Reload CodeChecker metadata按鈕來調用。 |
分析命令也可以以任務形式獲得:
| 任務 | 等效命令 |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...所選文件使用完整的路徑在 selectedFiles數組中列出。 |
{ type: "CodeChecker", taskType: "project" } | CodeChecker: Analyze entire project |
{ type: "CodeChecker log" } | CodeChecker: Run CodeChecker log |
{ type: "CodeChecker log", customBuildCommand: "..." } | CodeChecker: Run CodeChecker log with custom build command |
由於系統之間與CodeChecker相關的路徑差異很大,因此提供以下設置,可以通過“設置”菜單訪問:
| 姓名 | 描述 |
|---|---|
| codechecker>後端>輸出文件夾 (默認: ${workspaceFolder}/.codechecker ) | 存儲CodeChecker分析文件的輸出文件夾。 |
| codechecker>後端>編譯數據庫路徑 (默認值:(空) ) | 在自定義構建系統的情況下,自定義編譯數據庫的路徑。數據庫設置對話框僅設置當前工作區的路徑。留空白以在CodeChecker的輸出文件夾中使用數據庫,或將CodeChecker的自動檢索用於多根工作空間。 |
| codechecker>編輯>自定義錯誤嚴重性 (默認: null ) | 根據編輯器中顯示錯誤的嚴重性是什麼。錯誤可以顯示為“錯誤”,“警告”,“信息”或“提示”。默認情況下,除“樣式”嚴重性以外的所有內容都顯示為錯誤。配置為數組,例如{ "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| codechecker>編輯>顯示數據庫對話框 (默認: on ) | 在沒有編譯數據庫的情況下打開工作區時,控制對話框。 |
| codechecker>編輯>啟用密碼 (默認: on ) | 啟用代碼碼以在編輯器中顯示複製路徑。 |
| codechecker> executor>啟用通知 (默認: on ) | 啟用與CodeChecker相關的吐司通知。 |
| codechecker> executor>可執行路徑 (默認: CodeChecker ) | 通往CodeChecker的路徑。可以是PATH環境變量中的可執行文件,也可以是通往一個路徑的絕對路徑。 |
| codechecker>執行人>分析超時 (默認: 60 ) | 由CodeChecker Analysze命令運行的每個單獨分析的超時(以秒為單位)設置為0以禁用超時。 |
| codechecker> executor>線程計數 (默認值:(空) ) | CodeChecker的線程計數 - 空白以使用所有線程。 |
| codechecker> executor>參數 (默認值:(空) ) | 用於CodeChecker analyze其他論點。例如,如果您想將配置文件用於codechecker Pass' - -config <config.json>'。對於受支持的參數,運行CodeChecker analyze --help 。注意:可以使用命令 CodeChecker: Show full CodeChecker analyze command line 。 |
| codechecker> executor>日誌構建命令 (默認: make ) | 通過命令或任務運行CodeChecker log時使用的默認構建命令。 |
| codechecker> executor>日誌參數 (默認值:(空) ) | CodeChecker log的其他參數。注意:可以使用命令 CodeChecker: Preview CodeChecker log in terminal 。 |
| codechecker> executor>在保存上運行 (默認: on ) | 在保存文件時控制CodeChecker的自動運行。 |
注意:如果您已經從Marketplace安裝了此擴展程序,請首先卸載它,以防止與自己的構建發生衝突。
該擴展名使用node.js(v12+)和紗線(V2+)。推薦的VS代碼擴展名是Eslint和Typescript+WebPack問題匹配器
要構建和運行擴展名,請執行以下操作:
yarn install --immutable ,安裝依賴項code . )中打開要運行測試,請選擇擴展測試作為活動調試配置,或運行yarn run test 。
該擴展名在Apache 2.0許可證下發布,與CodeChecker相同。