Partilhar via


Diagnóstico do Driver Verifier estático

O SDV tem um modo de diagnóstico que pode ajudar você e a Microsoft a solucionar problemas que o SDV pode encontrar. Quando o modo de diagnóstico está habilitado, o SDV registra mensagens em uma série de arquivos em seu projeto de driver, um por estágio de verificação e por regra.

Habilitando o diagnóstico

No momento, o modo de diagnóstico para SDV (também conhecido como modo de depuração) só poderá ser habilitado quando for executado a partir da linha de comando. Para obter mais informações sobre como executar a partir da linha de comando, consulte Comandos do Driver Verifier estático (MSBuild).

Para ativar o diagnóstico, adicione o sinalizador /debug após um comando /check. Por exemplo:

msbuild /t:sdv /p:Inputs="/check:* /debug" mydriver.VcxProj /p:Configuration="Release" /p:Platform=x64

Habilitar o diagnóstico resultará em uma saída significativamente mais alta para a janela de comando, bem como na criação de arquivos de log específicos.

Noções básicas de diagnóstico

O SDV criará vários arquivos em cada estágio de execução que fornecerão detalhes sobre essa etapa. Quando o SDV falhar parcialmente na execução, ele não criará nenhum arquivo de diagnóstico para estágios posteriores.

Os arquivos criados são, em ordem:

  • smvexecute-NormalBuild.log: Localizado no diretório de origem do driver, mostrando a saída da tentativa inicial do SDV de compilar o driver sem instrumentação e análise adicionais.

  • smvexecute-InterceptedBuild.log: Localizado no diretório de origem do driver, mostrando a saída do SDV compilando o driver com ganchos de análise adicionados.

  • smvcl.log: Localizado no diretório "sdv" criado no projeto do driver pelo SDV. Ele mostra a saída do compilador da etapa InterceptedBuild. Se você vir uma falha no smvexecute-InterceptedBuild.log, poderá encontrar mais informações em smvcl.log.

  • smvexecute-Scan.log: Localizado no diretório "sdv" criado no projeto do driver pelo SDV. Ele mostra a saída da tentativa do SDV de verificar o driver para encontrar pontos de entrada. Um erro aqui pode indicar que nenhum ponto de entrada foi encontrado e que você deve atualizar os tipos de função ou sdv-map.h. Consulte Usando declarações de tipo de função e Aprovando o arquivo Sdv-map.h para obter mais informações.

  • smvexecute-FinalCompile.log: Um desses arquivos é criado para cada regra verificada pelo sdv e pode ser encontrado na subpasta "sdv\check[rule name]" que o SDV cria no projeto do driver. O arquivo mostra a saída da tentativa do SDV de criar o driver com o modelo do sistema operacional e a regra específica.

  • smvexecute-CheckRule.log: Um desses arquivos é criado para cada regra verificada pelo sdv e pode ser encontrado na subpasta "sdv\check[rule name]" que o SDV cria no projeto do driver. O arquivo mostra a saída da tentativa do SDV de verificar a regra especificada em relação ao driver.

Você deve procurar o arquivo correspondente à listagem de estágio como falha na saída do comando. Se a falha tiver ocorrido nas etapas FinalCompile ou CheckRule, verifique a pasta para a regras específica listada como falha.