Compartir a través de


Diagnósticos del comprobador de controladores estático

SDV tiene un modo de diagnóstico que puede ayudarle a usted y a Microsoft a solucionar los problemas que SDV pueda encontrar. Cuando el modo de diagnóstico está habilitado, SDV registra mensajes en una serie de archivos del proyecto de controlador, uno por fase de comprobación y por regla.

Habilitación de diagnósticos

El modo de diagnóstico para SDV (también conocido como modo de depuración) solo se puede habilitar actualmente cuando se ejecuta desde la línea de comandos. Para obtener más información sobre cómo ejecutar desde la línea de comandos, consulte Comandos del comprobador de controladores estáticos (MSBuild).

Para activar los diagnósticos, agregue la marca /debug después de un comando /check. Por ejemplo:

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

La habilitación de diagnósticos dará como resultado una salida significativamente mayor en la ventana de comandos, así como la creación de archivos de registro específicos.

Descripción de los diagnósticos

SDV creará varios archivos en cada fase de ejecución, lo que proporcionará detalles sobre ese paso. Cuando se produce un error en SDV, no creará ningún archivo de diagnóstico para las fases posteriores.

Los archivos creados son, por orden:

  • smvexecute-NormalBuild.log: se encuentra en el directorio de origen del controlador y muestra la salida del intento inicial de SDV para compilar el controlador sin instrumentación y análisis adicionales.

  • smvexecute-InterceptedBuild.log: se encuentra en el directorio de origen del controlador y muestra la salida de SDV que crea el controlador con enlaces de análisis agregados.

  • smvcl.log: se encuentra en el directorio "sdv" creado en el proyecto de controlador por SDV. Muestra la salida del compilador del paso InterceptedBuild. Si ve un error en smvexecute-InterceptedBuild.log, puede encontrar detalles adicionales en smvcl.log.

  • smvexecute-Scan.log: se encuentra en el directorio "sdv" creado en el proyecto de controlador por SDV. Muestra la salida del intento de SDV de examinar el controlador para buscar puntos de entrada. Un error aquí puede indicar que no se encontraron puntos de entrada y debe actualizar los tipos de rol de función o sdv-map.h. Consulte Uso de declaraciones de tipo de rol de función y Aprobación del archivo Sdv-map.h para obtener más información.

  • smvexecute-FinalCompile.log: se crea uno de estos archivos para cada regla verificada por sdv y se puede encontrar en la subcarpeta "sdv\check[nombre de regla]" que crea el SDV en el proyecto de controlador. Este archivo muestra la salida del intento de SDV de compilar el controlador con el modelo del sistema operativo y una regla específica.

  • smvexecute-CheckRule.log: se crea uno de estos archivos para cada regla verificada por sdv y se puede encontrar en la subcarpeta "sdv\check[nombre de regla]" que crea el SDV en el proyecto de controlador. Este archivo muestra la salida del intento de SDV de comprobar la regla especificada en el controlador.

Debe buscar el archivo correspondiente a la lista de fases como error en la salida del comando. Si se produjo el error en los pasos FinalCompile o CheckRule, asegúrese de comprobar la carpeta de la regla específica que aparece como errónea.