Como executar a Análise de Código para drivers
A Análise de Código para Drivers fornece informações sobre possíveis defeitos no código-fonte. Você pode executar a análise de código manualmente e também pode executar a análise de código automaticamente com cada build.
Neste tópico:
- Executando a análise de código
- Exibindo os resultados da análise de código
- Suprimindo o relatório de defeitos
- Alterando os limites de uso da pilha para o aviso C6262 para drivers no modo kernel
- Tópicos relacionados
Executando a análise de código
Para executar a análise de código no código-fonte do driver manualmente
- No Visual Studio, selecione o arquivo de projeto de driver ou a solução e selecione a configuração do projeto e a plataforma a serem analisadas.
- No menu Analisar ou Compilar , clique em Executar Análise de Código na Solução.
Para executar a análise de código no código-fonte do driver automaticamente com cada build
- No Visual Studio, clique com o botão direito do mouse no projeto ou solução do driver no Gerenciador de Soluções e clique em Propriedades.
- Na caixa de diálogo propriedades do projeto, clique em Análise de Código.
- Na página Análise de Código para Propriedades do C/C++, selecione a configuração e a plataforma do projeto que você deseja analisar (por exemplo, Windows 8 e Win32).
- Selecione Habilitar Análise de Código para C/C++ no Build.
- Em Conjunto de regras, selecione Regras Recomendadas do Microsoft Driver. Essa é a regra padrão definida para drivers.
- No menu Compilar , clique em Compilar Solução.
Exibindo os resultados da análise de código
Se possíveis defeitos forem encontrados no código-fonte, a janela Resultados da Análise de Código exibirá o número de aviso de análise de código e o número de linha no arquivo de origem em que o defeito ocorre.
Para exibir defeitos
Na janela Resultados da Análise de Código , clique no número de linha e uma descrição do defeito é exibida na janela Resultados da Análise de Código .
A janela Código exibe o código-fonte e indica onde o defeito ocorre.
Para saber mais sobre um aviso específico, clique no Aviso na janela Resultados da Análise de Código .
Para exibir o arquivo de log de análise de código associado a um build
- Navegue até o diretório para sua configuração e plataforma de build (por exemplo,
\\Windows7Release\\x64
). - Se você usar as regras recomendadas, o arquivo de log será chamado
vc.\*codeanalysis.xml
de . Se você estiver criando um driver para Windows Server 2012, esse arquivo será usado para criar o log de Verificação de Driver.
Suprimindo o relatório de defeitos
Em alguns casos, talvez você queira suprimir o relatório de mensagens de aviso específicas; por exemplo, se o aviso for principalmente informativo e você souber a causa do erro.
Para suprimir mensagens de aviso
Para remover uma instância de um defeito relatado, selecione o número de linha e o aviso na janela Resultados da Análise de Código .
Na descrição expandida do aviso, clique em Ações>Suprimir Mensagem>na origem.
Uma diretiva de aviso pragma com o especificador de supressão suprime o aviso somente para a linha de código que segue imediatamente a instrução de aviso #pragma.
#pragma warning(suppress: 6014)
Alterando os limites de uso da pilha para o aviso C6262 para drivers no modo kernel
No modo de usuário e no código do modo kernel, o espaço de pilha é limitado e a falha ao confirmar uma página de pilha causa uma exceção de estouro de pilha. O alto uso da pilha é particularmente uma preocupação no modo kernel porque o espaço total de pilha disponível é de apenas 12 KB. O código do modo kernel deve limitar agressivamente o uso da pilha.
A ferramenta Análise de Código emitirá o aviso C6262 se mais de 1 KB de espaço de pilha for usado localmente em uma função. Se você quiser investigar funções que podem ser potencialmente intensivas em recursos, poderá personalizar ou reduzir o limite de pilha usado pelo C6262. Se você reduzir o limite de pilha, a ferramenta análise de código poderá encontrar mais problemas. Em seguida, você pode optar por resolver esses problemas de uso de pilha. Por exemplo, você pode reduzir o limite para 400 bytes para ver se outras funções estão usando recursos.
Para personalizar o limite de stacksize para C6262
- Abra o arquivo de projeto do Visual Studio (.vcxproj) para o driver do modo kernel (ou componente) no Bloco de Notas ou em outro editor de texto.
- Adicione um novo <ItemDefinitionGroup> para o compilador< ClCompile>.
- Adicione o <elemento PREfastAdditionalOptions> e defina os bytes> de stacksize<. O valor padrão é stacksize1024.
<ItemDefinitionGroup>
<ClCompile>
<!-- Change stack depth for C6262 from 1024 to 400 -->
<PREfastAdditionalOptions>stacksize400</PREfastAdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
Salve o arquivo de projeto. Inicie o Visual Studio, carregue o projeto de driver atualizado e execute a análise de código.
Para reverter para o padrão de 1 KB, desfaça as alterações feitas no arquivo de projeto ou altere o valor do tamanho da pilha para stacksize1024.
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de