这是用于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相同。