Compartilhar via


Início Rápido: análise de código para C/C++

Você pode melhorar a qualidade do aplicativo executando a análise de código regularmente no código C ou C++. A análise de código pode ajudar você a encontrar problemas comuns e violações das boas práticas de programação. E detecta defeitos que são difíceis de descobrir por meio de testes. Seus avisos diferem dos erros e avisos do compilador: ela procura padrões de código específicos que são conhecidos por causar problemas. Ou seja, o código é válido, mas ainda pode criar problemas, seja para você ou para outras pessoas que usam seu código.

Configurar conjuntos de regras para um projeto

  1. No Gerenciador de Soluções, abra o menu de atalho do nome do projeto e, em seguida, escolha Propriedades.

  2. Opcionalmente, nas listas Configuração e Plataforma, escolha a configuração de build e a plataforma de destino.

  3. Para executar a análise de código sempre que o projeto for criado usando a configuração selecionada, marque a caixa de seleção Habilitar Análise de Código ao Compilar. Você também pode executar a análise de código manualmente abrindo o menu Analisar e escolhendo Executar Análise de Código no ProjectName ou Executar Análise de Código no Arquivo.

  4. Escolha o conjunto de regras que deseja usar ou crie um conjunto de regras personalizado. Se estiver usando LLVM/clang-cl, confira Usar o Clang-Tidy no Visual Studio para configurar as opções de análise do Clang-Tidy.

Conjuntos de regras C/C++ padrão

O Visual Studio inclui estes conjuntos padrão de regras para código nativo:

Conjunto de regras Descrição
Regras Aritméticas da Verificação Principal do C++ Essas regras impõem verificações relacionadas a operações aritméticas das Diretrizes Principais do C++.
Regras de Limites da Verificação Principal do C++ Essas regras impõem o perfil Limites das Diretrizes Principais do C++.
Regras de Classe da Verificação Principal do C++ Essas regras impõem verificações relacionadas a classes das Diretrizes Principais do C++.
Regras de Simultaneidade da Verificação Principal do C++ Essas regras impõem verificações relacionadas a simultaneidade das Diretrizes Principais do C++.
Regras de Const da Verificação Principal do C++ Essas regras impõem verificações relacionadas a const das Diretrizes Principais do C++.
Regras de Declaração da Verificação Principal do C++ Essas regras impõem verificações relacionadas a declarações das Diretrizes Principais do C++.
Regras de Enumeração da Verificação Principal do C++ Essas regras impõem verificações relacionadas a enumeração das Diretrizes Principais do C++.
Regras Experimentais da Verificação Principal do C++ Essas regras coletam algumas verificações experimentais. Eventualmente, esperamos que essas verificações sejam movidas para outros conjuntos de regras ou removidas completamente.
Regras de Função da Verificação Principal do C++ Essas regras impõem verificações relacionadas a funções das Diretrizes Principais do C++.
Regras GSL da Verificação Principal do C++ Essas regras impõem verificações relacionadas à Biblioteca de Suporte de Diretrizes das Diretrizes do C++ Core.
Regras de Tempo de Vida da Verificação Principal do C++ Essas regras impõem o perfil Tempo de Vida das Diretrizes Principais do C++.
Regras de Ponteiro do Proprietário da Verificação Principal do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas às owner<T> das Diretrizes Principais do C++.
Regras de Ponteiro Bruto da Verificação Principal do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas aos ponteiros brutos das Diretrizes Principais do C++.
Regras da Verificação Principal do C++ Essas regras impõem um subconjunto das verificações das Diretrizes Principais do C++. Use este conjunto de regras para incluir todas as regras de Verificação Principal do C++, exceto os conjuntos de regras Enum e Experimental.
Regras de Ponteiro Compartilhado da Verificação Principal do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas a tipos com semântica de ponteiro compartilhado das Diretrizes Principais do C++.
Regras STL da Verificação Principal do C++ Essas regras implementam verificações relacionadas às Biblioteca Padrão do C++ das Diretrizes Básicas do C++.
Regras de Estilo da Verificação Principal do C++ Essas regras impõem verificações relacionadas ao uso de expressões e instruções das Diretrizes Principais do C++.
Regras de Tipo da Verificação Principal do C++ Essas regras impõem o perfil Tipo das Diretrizes Principais do C++.
Regras de Ponteiro Exclusivo da Verificação Principal do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas a tipos com semântica de ponteiro exclusivo das Diretrizes Principais do C++.
Regras de Verificação de Simultaneidade Essas regras impõem um conjunto de verificações de padrão de simultaneidade do Win32 no C++.
Regras de Simultaneidade Adiciona regras de simultaneidade das Diretrizes Principais do C++ às Regras de Verificação de Simultaneidade.
Regras Nativas Mínimas da Microsoft Essas regras se concentram nos problemas mais críticos em seu código nativo, incluindo possíveis falhas de segurança e falhas de aplicativos. Recomendamos que você inclua esse conjunto de regras em qualquer conjunto de regras personalizado criado para seus projetos nativos.
Regras Nativas Recomendadas da Microsoft Essas regras se concentram nos problemas mais críticos e comuns em seu código nativo. Esses problemas incluem possíveis falhas de segurança e falhas de aplicativos. Recomendamos que você inclua esse conjunto de regras em qualquer conjunto de regras personalizado criado para seus projetos nativos. Este conjunto de regras foi projetado para funcionar com a edição Visual Studio Professional e superior. Ele inclui todas as regras em Regras Nativas Mínimas da Microsoft.

O Visual Studio inclui estes conjuntos padrão de regras para código nativo:

Conjunto de regras Descrição
Regras Básicas de Correção da Microsoft Essas regras se concentram em erros de lógica e erros comuns cometidos no uso de APIs de estrutura. Inclua este conjunto de regras para expandir a lista de avisos relatados pelas regras mínimas recomendadas.
Regras de Diretrizes Básicas de Design da Microsoft Essas regras se concentram em impor melhores práticas para tornar seu código fácil de entender e usar. Inclua este conjunto de regras se o seu projeto incluir código de biblioteca ou se você quiser aplicar as melhores práticas para código de fácil manutenção.
Regras Estendidas de Correção da Microsoft Essas regras expandem as regras básicas de correção para maximizar os erros de uso de estrutura e lógica relatados. Ênfase extra é colocada em cenários específicos, como interoperabilidade COM e aplicativos móveis. Pense em incluir esse conjunto de regras se um desses cenários se aplicar ao seu projeto ou se você encontrar mais problemas no seu projeto.
Regras de Diretrizes Estendidas de Design da Microsoft Essas regras expandem as regras básicas de diretrizes de design para maximizar os problemas relatados de usabilidade e manutenção. Ênfase extra é colocada nas diretrizes de nomenclatura. Considere incluir este conjunto de regras se seu projeto incluir código de biblioteca ou se você quiser aplicar os mais altos padrões para criar código de manutenção.
Regras de Globalização da Microsoft Essas regras se concentram em problemas que impedem que os dados em seu aplicativo sejam exibidos corretamente quando usados em diferentes idiomas, localidades e culturas. Inclua esse conjunto de regras se o aplicativo for localizado e/ou globalizado.
Regras Mínimas Gerenciadas da Microsoftt Essas regras se concentram nos problemas mais críticos em seu código para os quais a Code Analysis é a mais precisa. Essas regras são em pequeno número e se destinam apenas a serem executadas em edições limitadas do Visual Studio. Use MinimumRecommendedRules.ruleset com outras edições do Visual Studio.
Regras Recomendadas Gerenciadas da Microsoft Essas regras se concentram nos problemas mais críticos em seu código. Esses problemas incluem possíveis falhas de segurança, falhas de aplicativo e outros erros importantes de lógica e design. Recomendamos que você inclua esse conjunto de regras em qualquer conjunto de regras personalizado criado para seus projetos.
Regras Mínimas Mistas (C++ /CLR) da Microsoft Essas regras se concentram nos problemas mais críticos em seus projetos C++ que dão suporte ao Common Language Runtime. Esses problemas incluem possíveis falhas de segurança, falhas de aplicativo e outros erros importantes de lógica e design. Recomendamos que você inclua esse conjunto de regras em qualquer conjunto de regras personalizado criado para seus projetos C++ que dão suporte ao Common Language Runtime.
Regras Recomendadas Mistas (C++ /CLR) da Microsoft Essas regras se concentram nos problemas mais comuns e críticos em seus projetos C++ que dão suporte ao Common Language Runtime. Esses problemas incluem possíveis falhas de segurança, falhas de aplicativo e outros erros importantes de lógica e design. Este conjunto de regras foi projetado para uso com a edição Visual Studio Professional e superior.
Regras de Segurança da Microsoft Esse conjunto de regras contém todas as regras de segurança da Microsoft. Inclua esse conjunto de regras para maximizar o número de possíveis problemas de segurança relatados.

Para incluir todas as regras:

Conjunto de regras Descrição
Todas as Regras da Microsoft Esse conjunto de regras contém todas as regras. A execução desse conjunto de regras pode resultar em um grande número de avisos relatados. Use esse conjunto de regras para obter uma visão abrangente de todos os problemas em seu código. Ele pode ajudar você a decidir quais dos conjuntos de regras mais focados são mais apropriados para serem executados para seus projetos.

Executar análise de código

Na página Análise de Código da caixa de diálogo Propriedades do Projeto, você pode configurar a análise de código a ser executada sempre que compilar seu projeto. Você também pode executar a análise de código manualmente.

Para executar a análise de código em uma solução:

  • No menu Compilar, escolha Executar Análise de Código na Solução.

Para executar a análise de código em um projeto:

  1. No Gerenciador de Soluções, selecione o nome do projeto.

  2. No menu Compilar, escolha Executar Análise de Código no Solução noNome do Projeto.

Para executar a análise de código em um arquivo:

  1. No Gerenciador de Soluções, selecione o nome do arquivo.

  2. No menu Compilar, escolha Executar Análise de Código no Arquivo ou pressione Ctrl+Shift+Alt+F7.

    O projeto ou solução é compilado e a análise de código é executada. Os resultados aparecem na janela Lista de Erros.

Analisar e resolver avisos de análise de código

A janela Lista de Erros lista os avisos de análise de código encontrados. Os resultados são exibidos em uma tabela. Se houver mais informações disponíveis sobre um aviso específico, a primeira coluna conterá um controle de expansão. Escolha-o para expandir a exibição para obter informações adicionais sobre o problema. Quando possível, a análise de código exibe o número da linha e a lógica da análise que levou ao aviso.

Para obter informações detalhadas sobre o aviso, incluindo possíveis soluções para o problema, escolha a ID de aviso na coluna Código para exibir seu artigo de ajuda online correspondente.

Clique duas vezes em um aviso para mover o cursor para a linha de código que causou o aviso no editor de código do Visual Studio. Ou pressione Enter no aviso selecionado.

Depois de entender o problema, você pode resolvê-lo no seu código. Em seguida, execute novamente a análise de código para garantir que o aviso não apareça mais na Lista de Erros.

Criar itens de trabalho para avisos de análise de código

Você pode usar o recurso de acompanhamento de item de trabalho para registrar bugs no Visual Studio. Para usar esse recurso, você deve se conectar a uma instância do Azure DevOps Server (anteriormente, Team Foundation Server).

Para criar um item de trabalho para um ou mais avisos de código C/C++

  1. Na Lista de Erros, expanda e selecione os avisos

  2. No menu de atalho para os avisos, escolha Criar Item de Trabalho e escolha o tipo de item de trabalho.

  3. O Visual Studio cria um único item de trabalho para os avisos selecionados e exibe o item de trabalho em uma janela de documento do IDE.

  4. Adicione informações adicionais e escolha Salvar Item de Trabalho.

Pesquisar e filtrar resultados da análise de código

Você pode pesquisar listas longas de mensagens de aviso e pode filtrar avisos em soluções multiprojeto.

  • Para filtrar avisos por título ou ID de aviso: insira a palavra-chave na caixa Pesquisar Lista de Erros.

  • Para filtrar avisos por gravidade : por padrão, as mensagens de análise de código recebem uma gravidade de Aviso. Você pode atribuir a gravidade de uma ou mais mensagens como Erro em um conjunto de regras personalizado. Na coluna Gravidade da Lista de Erros, escolha a seta suspensa e, em seguida, o ícone de filtro. Escolha Aviso ou Erro para exibir apenas as mensagens atribuídas à respectiva gravidade. Escolha Selecionar Tudo para exibir todas as mensagens.

Confira também