Compartilhar 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

O modo de diagnóstico para SDV (também conhecido como modo de depuração) atualmente só pode ser habilitado quando executado a partir da linha de comando. Para obter mais detalhes sobre como executar na linha de comando, consulte comandos do Verificador de Driver Estático (MSBuild).

Para ativar o diagnóstico, adicione o sinalizador /debug após o 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 maior para a janela de comando, bem como a criação de arquivos de log específicos.

Noções básicas sobre diagnósticos

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

Os arquivos criados são, na ordem:

  • smvexecute-NormalBuild.log: isso está localizado no diretório de origem do driver e mostra a saída da tentativa inicial do SDV de criar o driver sem instrumentação e análise adicionais.

  • smvexecute-InterceptedBuild.log: este arquivo está localizado no diretório de origem do driver e mostra a saída do SDV criando o driver com ganchos de análise adicionados.

  • smvcl.log: isso está localizado no diretório "sdv" criado em seu projeto de driver pelo SDV. Ele mostra a saída do compilador da etapa InterceptedBuild. Se você vir uma falha em smvexecute-InterceptedBuild.log, poderá encontrar detalhes adicionais em smvcl.log.

  • smvexecute-Scan.log: isso está localizado no diretório "sdv" criado em seu projeto de driver pelo SDV. Ele mostra a saída da tentativa do SDV de verificar o driver para localizar pontos de entrada. Um erro aqui pode indicar que nenhum ponto de entrada foi encontrado e você deve atualizar seus tipos de função ou o arquivo sdv-map.h. Consulte Como usar declarações de tipo de função e aprovar 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 em seu projeto de driver. Esse arquivo mostra a saída da tentativa do SDV de criar o driver com o modelo do sistema operacional e uma 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 em seu projeto de driver. Este arquivo mostra a saída da tentativa do SDV de verificar a regra especificada contra o seu driver.

Você deve procurar o arquivo correspondente ao estágio listado como falha na saída do comando. Se a falha ocorreu nas etapas FinalCompile ou CheckRule , verifique a pasta para a regra específica listada como falha.