Partilhar via


Guia de início rápido: análise de código para C/C++

Você pode melhorar a qualidade do seu aplicativo executando a análise de código regularmente em código C ou C++. A análise de código pode ajudá-lo a encontrar problemas comuns e violações de boas práticas de programação. E encontra defeitos difíceis de descobrir através de testes. Seus avisos diferem de erros e avisos do compilador: ele procura padrões de código específicos que são conhecidos por causar problemas. Ou seja, código que é 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 para o nome do projeto e escolha Propriedades.

  2. Opcionalmente, nas listas Configuração e Plataforma , escolha a configuração de compilação 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 na compilação . Você também pode executar a análise de código manualmente abrindo o menu Analisar e, em seguida, escolhendo Executar análise de código emProjectName ou Executar análise de código em arquivo.

  4. Escolha o conjunto de regras que deseja usar ou crie um conjunto de regras personalizado. Se estiver a utilizar LLVM/clang-cl, consulte Usando Clang-Tidy no Visual Studio para configurar as opções de análise 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 de verificação de núcleo do C++ Essas regras impõem verificações relacionadas a operações aritméticas das Diretrizes Básicas do C++.
Regras de verificação de limites do C++ Core Essas regras impõem o perfil Bounds das Diretrizes Fundamentais do C++.
Regras de classe de verificação principal do C++ Essas regras impõem verificações relacionadas a classes das Diretrizes Principais do C++.
Regras de Concorrência da Verificação Core do C++ Essas regras impõem verificações relacionadas à concorrência das Diretrizes Principais de C++.
Regras de Const do C++ Core Check Essas regras impõem verificações relacionadas à const das Diretrizes Básicas do C++.
Regras da Declaração de Verificação Principal do C++ Essas regras impõem verificações relacionadas às declarações das Diretrizes Básicas do C++.
Regras do C++ Core Check Enum Essas regras impõem verificações relacionadas ao enum das Diretrizes Core do C++.
Regras experimentais de verificação de núcleo do C++ Estas regras recolhem alguns controlos experimentais. Eventualmente, esperamos que essas verificações sejam movidas para outros conjuntos de regras ou removidas completamente.
Regras da função de verificação do núcleo do C++ Essas regras impõem verificações relacionadas a funções das Diretrizes Principais do C++.
Regras GSL de verificação essencial do C++ Essas regras impõem verificações relacionadas à Biblioteca de Suporte de Diretrizes das Diretrizes Principais do C++.
Regras de vida útil da verificação do núcleo do C++ Essas regras impõem o perfil Lifetime das Diretrizes Básicas do C++.
Regras de Ponteiros de Proprietário do C++ Core Check Essas regras impõem verificações de gerenciamento de recursos relacionadas àsowner<T> Diretrizes Centrais do C++.
Regras de Verificação de Ponteiro Bruto do Core C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas a ponteiros brutos das Diretrizes Principais do C++.
Regras de verificação do C++ Core 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 de núcleo do C++, exceto os conjuntos de regras Enum e Experimental.
Regras de verificações principais de ponteiro partilhado do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas a tipos com semântica de ponteiro compartilhada das Diretrizes Principais do C++.
Regras STL de verificação de núcleo do C++ Essas regras impõem verificações relacionadas à Biblioteca Padrão C++ das Diretrizes Principais do C++.
Regras de estilo de 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 de verificação principal do C++ Essas regras impõem o perfil Tipo das Diretrizes Principais do C++.
Regras de ponteiro exclusivas de verificação de núcleo do C++ Essas regras impõem verificações de gerenciamento de recursos relacionadas a tipos com semântica de ponteiro exclusiva das Diretrizes Principais do C++.
Regras de verificação de concorrência Essas regras impõem um conjunto de verificações de padrão de simultaneidade do Win32 em C++.
Regras de concorrência Adiciona regras de simultaneidade das Diretrizes Principais do C++ às Regras de Verificação de Simultaneidade.
Regras mínimas nativas 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. Esse conjunto de regras foi projetado para funcionar com o Visual Studio Professional Edition e superior. Inclui todas as regras no Microsoft Native Minimum Rules.

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

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 diretriz de design básico da Microsoft Essas regras se concentram na aplicação de práticas recomendadas 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 impor práticas recomendadas para código de fácil manutenção.
Regras de correção estendidas da Microsoft Essas regras expandem as regras básicas de correção para maximizar a lógica relatada e os erros de uso da estrutura. É dada maior ênfase a cenários específicos, como a interoperabilidade COM e as aplicações móveis. Considere incluir esse conjunto de regras se um desses cenários se aplicar ao seu projeto ou para encontrar mais problemas em seu projeto.
Regras do Microsoft Extended Design Guideline Essas regras expandem as regras básicas de diretrizes de design para maximizar os problemas de usabilidade e manutenção relatados. É dada maior ênfase às diretrizes de nomenclatura. Considere incluir esse conjunto de regras se seu projeto incluir código de biblioteca ou se você quiser impor os mais altos padrões para escrever código que possa ser mantido.
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 idiomas, localidades e culturas diferentes. Inclua esse conjunto de regras se seu aplicativo estiver localizado e/ou globalizado.
Regras mínimas gerenciadas pela Microsoft Essas regras se concentram nos problemas mais críticos em seu código, para os quais a Análise de Código é a mais precisa. Essas regras são pequenas em número e destinam-se apenas a ser executadas em edições limitadas do Visual Studio. Use MinimumRecommendedRules.ruleset com outras edições do Visual Studio.
Regras recomendadas gerenciadas pela 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 aplicativos 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 do Microsoft Mixed (C++ /CLR) Essas regras se concentram nos problemas mais críticos em seus projetos C++ que suportam o Common Language Runtime. Esses problemas incluem possíveis falhas de segurança, falhas de aplicativos 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 ofereçam suporte ao Common Language Runtime.
Regras recomendadas do Microsoft Mixed (C++ /CLR) Essas regras se concentram nos problemas mais comuns e críticos em seus projetos C++ que suportam o Common Language Runtime. Esses problemas incluem possíveis falhas de segurança, falhas de aplicativos e outros erros importantes de lógica e design. Esse conjunto de regras foi projetado para uso na edição do Visual Studio Professional e superior.
Regras de Segurança da Microsoft Este conjunto de regras contém todas as regras de segurança da Microsoft. Inclua este 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 Este conjunto de regras contém todas as regras. A execução deste conjunto de regras pode resultar em um grande número de avisos relatados. Use este conjunto de regras para obter uma imagem abrangente de todos os problemas em seu código. Ele pode ajudá-lo a decidir qual dos conjuntos de regras mais focados é mais apropriado para executar 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 para ser executada sempre que criar 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 Build, escolha Executar Análise de Código emNome 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 Build , escolha Run Code Analysis on File 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.

Analise e resolva 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 os números de linha e a lógica de análise que levou ao aviso.

Para obter informações detalhadas sobre o aviso, incluindo possíveis soluções para o problema, escolha o ID do aviso na coluna Código para exibir o artigo de ajuda on-line 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. Ou pressione Enter no aviso selecionado.

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

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

Você pode usar o recurso de controle de item de trabalho para registrar bugs de dentro do 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, em seguida, 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.

Resultados da análise de código de pesquisa e filtro

Você pode pesquisar longas listas de mensagens de aviso e filtrar avisos em soluções de vários projetos.

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

  • Para filtrar avisos por gravidade: Por padrão, as mensagens de análise de código recebem uma severidade de Aviso. Você pode atribuir a gravidade de uma ou mais mensagens como Erro em um conjunto de regras personalizadas. Na coluna Severidade da Lista de Erros, clique na seta suspensa e depois no ícone de filtro. Escolha Aviso ou Erro para exibir apenas as mensagens às quais é atribuída a respetiva gravidade. Escolha Selecionar tudo para exibir todas as mensagens.

Ver também