Este é um plug -in de análise de código C/C ++ para o VSCode que mostra relatórios de bugs detectados pelo analisador estático CLANG e pelos analisadores do CLANG, usando o Codechecker como back -end.

PATH .compile_commands.json .F9 / Shift-F9 por padrão) 


O Codechecker funciona lendo um banco de dados de compilação gerado, geralmente chamado de compile_commands.json , e executando análises específicas com base nisso.
CMake possui suporte interno para gerar um banco de dados de compilação. Defina a variável de ambiente CMAKE_EXPORT_COMPILE_COMMANDS=ON e o banco de dados de compilação deve estar dentro da sua pasta Build. Se você estiver usando a extensão CMake Tools para código VS, poderá adicionar esse sinalizador às configurações de extensão em Cmake > Build Environment .
make e outros sistemas de construção não possuem suporte interno para gerar um banco de dados de compilação, mas o Codechecker pode gerar um com base no comando de compilação. Para gerar um, você pode usar o comando CodeChecker log -b "[full build command]" -o .codechecker/compile_commands.json .
Para automatizar o processo, a extensão fornece maneiras de executar o comando CodeChecker log automaticamente. Primeiro, nas configurações de extensão Definir CodeChecker > Executor > Log build command e, em seguida, use a tarefa VS Code ou o comando vs code CodeChecker: Run CodeChecker Log para executar a análise. Você também pode executar CodeChecker: Preview CodeChecker log in terminal para ter mais controle de granulação fina sobre os parâmetros passados para o Codechecker.
A extensão usa o Codechecker versão 6.18.2 ou posterior. Se o seu caminho de instalação for diferente ou o Codechecker não estiver na variável do ambiente PATH , o caminho para ele pode ser definido manualmente em Preferences > Settings > Extensions > CodeChecker > Executable path .
A extensão pode executar uma análise Codechecker em seu projeto, ao salvar um arquivo ou ao usar um dos comandos CodeChecker: Analyze . Você pode interromper a análise clicando no botão Cancelar na notificação do Codechecker - os resultados parciais são salvos automaticamente.
A análise é totalmente configurável e a linha de comando Codechecker resultante pode ser visualizada com o CodeChecker: Show full command line (para argumentos suportados, execute CodeChecker analyze --help ). As configurações para o espaço de trabalho atual podem ser definidas na guia Espaço de Works nas configurações. A análise automática sobre economia também pode ser configurada.
Informações detalhadas sobre as opções de configuração podem ser encontradas em Configurações.
A extensão fornece os seguintes comandos:
| Comando | Descrição |
|---|---|
CodeChecker: Analyze current file | Analisa o arquivo de origem atualmente aberto usando o Codechecker. Também pode ser chamado clicando no botão Re-analyze current file no painel lateral do Codechecker.Útil quando a Run On Save é desligada nas configurações do plug -in. |
CodeChecker: Analyze selected files... | Analisa os arquivos selecionados pelo usuário, usando o Codechecker. Aceita vários arquivos como entrada. |
CodeChecker: Analyze entire project | Analisa todo o projeto usando o Codechecker. Também pode ser chamado clicando no botão Re-analyze entire project no painel lateral do Codechecker.AVISO: Uma análise completa pode levar minutos ou até horas em projetos maiores. |
CodeChecker: Stop running CodeChecker instance | Interrompe a análise atualmente em execução. Os resultados parciais são salvos e atualizados. |
CodeChecker: Run CodeChecker log | Atualiza o banco de dados de compilação, criando o projeto atual. Também está disponível uma variante com um comando de compilação personalizado especificado pelo usuário. |
CodeChecker: Preview CodeChecker log in terminal | O comando Codechecker Log atual é colado em uma nova janela de terminal, onde pode ser editado antes de executá -lo. |
CodeChecker: Show database setup dialog | Mostra a caixa de diálogo para selecionar o caminho para um banco de dados de compilação existente ou para criar um novo. |
CodeChecker: Next reproduction step ,CodeChecker: Previous reproduction step | Movimentos entre um caminho de reprodução exibido etapas. Você também pode navegar diretamente até a etapa de um relatório através do painel lateral do Codechecker. Keybinds padrão: Ctrl-F7 , Ctrl-Shift-F7 respectivamente. |
CodeChecker: Show full CodeChecker analyze command line | Mostra a linha de comando Codechecker completa usada para analisar arquivos. Útil se você deseja revisar as opções do analisador antes de executar ou se deseja executar a análise manualmente. |
CodeChecker: Show Output | Concentra a saída do Codechecker no editor. Os logs do plug -in, bem como a saída das execuções anteriores do Codechecker, são exibidas aqui. |
CodeChecker: Reload metadata | Recarrega o arquivo metadata.json do Codechecker. Também pode ser chamado clicando no botão Reload CodeChecker metadata no painel lateral do Codechecker. |
Os comandos de análise também estão disponíveis no formulário de tarefas:
| Tarefa | Comando equivalente |
|---|---|
{ type: "CodeChecker", taskType: "currentFile" } | CodeChecker: Analyze current file |
{ type: "CodeChecker", taskType: "selectedFiles", selectedFiles: [] } | CodeChecker: Analyze selected files...Os arquivos selecionados estão listados na matriz de selectedFiles , usando caminhos completos. |
{ 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 |
Como os caminhos relacionados ao Codechecker variam muito entre os sistemas, as seguintes configurações são fornecidas, acessíveis através do menu Configurações:
| Nome | Descrição |
|---|---|
| Codechecker> Back -end> Pasta de saída (Padrão: ${workspaceFolder}/.codechecker ) | A pasta de saída onde os arquivos de análise Codechecker são armazenados. |
| Codechecker> Back -end> Caminho do banco de dados de compilação (Padrão: (vazio) ) | Caminho para um banco de dados de compilação personalizado, no caso de um sistema de construção personalizado. A caixa de diálogo Configuração do banco de dados define o caminho apenas para o espaço de trabalho atual. Deixe em branco para usar o banco de dados na pasta de saída do Codechecker ou para usar a AutoDetecção do Codechecker para espaços de trabalho com várias raizs. |
| Codechecker> Editor> Gravidades de bug personalizadas (Padrão: null ) | Controle como um bug é exibido no editor, dependendo da sua gravidade. Os bugs podem ser exibidos como 'erro', 'aviso', 'informação' ou 'dica'. Por padrão, tudo, exceto a gravidade do 'estilo', é exibido como um erro. Configurado como uma matriz, como { "UNSPECIFIED": "Warning", "LOW": "Warning" } |
| Codechecker> Editor> Mostrar diálogo de banco de dados (Padrão: on ) | Controla a caixa de diálogo ao abrir um espaço de trabalho sem um banco de dados de compilação. |
| Codechecker> Editor> Ativar Codelens (Padrão: on ) | Ative o Codelens para exibir o caminho de reprodução no editor. |
| Codechecker> Executor> Ativar notificações (Padrão: on ) | Ativar notificações de brinde relacionadas ao Codechecker. |
| Codechecker> Executor> Caminho executável (Padrão: CodeChecker ) | Caminho para o executável do Codechecker. Pode ser um executável na variável do ambiente PATH , ou um caminho absoluto para um. |
| Codechecker> Executor> Timeout da análise (Padrão: 60 ) | O tempo limite (em segundos) para cada análise individual executada pelo comando Codechecker Analyze - Defina como 0 para desativar o tempo limite. |
| Codechecker> Executor> Contagem de threads (Padrão: (vazio) ) | Contagem de threads do Codechecker - deixe vazio para usar todos os threads. |
| Codechecker> Executor> Argumentos (Padrão: (vazio) ) | Argumentos adicionais para CodeChecker analyze . Por exemplo, se você deseja usar um arquivo de configuração para o Codechecker Pass '--Config <config.json>'. Para argumentos suportados, execute CodeChecker analyze --help .NOTA: A linha de comando resultante pode ser visualizada com o comando CodeChecker: Show full CodeChecker analyze command line . |
| Codechecker> Executor> Comando de construção de log (Padrão: make ) | O comando de construção padrão usado ao executar CodeChecker log via comandos ou tarefas. |
| Codechecker> Executor> Argumentos de log (Padrão: (vazio) ) | Argumentos adicionais para CodeChecker log .NOTA: A linha de comando resultante pode ser visualizada com o comando CodeChecker: Preview CodeChecker log in terminal . |
| Codechecker> Executor> Executar no SAVE (Padrão: on ) | Controla a execução automática do Codechecker para salvar um arquivo. |
Nota : Se você já instalou esta extensão do Marketplace, desinstale -o primeiro para evitar conflitos com sua própria construção.
Esta extensão usa node.js (v12+) e fios (v2+). Extensões recomendadas de código vs são ESLint e TypeScript+Webpack Problem Matcher
Para construir e executar a extensão, faça o seguinte:
yarn install --immutable , para instalar dependênciascode . ) Para executar testes, selecione testes de extensão como a configuração de depuração ativa ou execute yarn run test .
A extensão é liberada sob a licença Apache 2.0, a mesma licença que o Codechecker.