Condividi tramite


Diagnostica del driver statico

SDV ha una modalità di diagnostica che può aiutare te e Microsoft a diagnosticare i problemi che SDV potrebbe incontrare. Quando la modalità diagnostica è abilitata, SDV registra i messaggi a una serie di file nel progetto driver, uno per fase di verifica e per regola.

Abilitazione della diagnostica

La modalità di diagnostica per SDV (nota anche come modalità di debug) può attualmente essere abilitata solo quando viene eseguita dalla riga di comando. Per altri dettagli sull'esecuzione dalla riga di comando, vedere Comandi di verifica driver statici (MSBuild).For more details on running from the command line, see Static Driver Verifier commands (MSBuild).

Per attivare la diagnostica, aggiungere il flag /debug dopo un comando /check . Per esempio:

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

L'abilitazione della diagnostica comporterà un aumento significativo dell'output nella finestra di comando, nonché la creazione di file di log specifici.

Informazioni sulla diagnostica

SDV creerà diversi file in ogni fase di esecuzione, che fornirà informazioni dettagliate su tale passaggio. Quando SDV ha esito negativo durante l'esecuzione, non creerà alcun file di diagnostica per le fasi successive.

I file creati sono in ordine:

  • smvexecute-NormalBuild.log: si trova nella directory di origine del driver e mostra l'output del tentativo iniziale di SDV di compilare il driver senza strumentazione e analisi aggiuntive.

  • smvexecute-InterceptedBuild.log: si trova nella directory sorgente del driver e visualizza l'output di SDV durante la compilazione del driver con ganci di analisi aggiunti.

  • smvcl.log: si trova nella directory "sdv" creata nel progetto driver da SDV. Mostra l'output del compilatore del passaggio InterceptedBuild. Se viene visualizzato un errore in smvexecute-InterceptedBuild.log, è possibile trovare altri dettagli in smvcl.log.

  • smvexecute-Scan.log: si trova nella directory "sdv" creata nel progetto driver da SDV. Mostra l'output del tentativo di SDV di analizzare il driver per trovare i punti di ingresso. Un errore potrebbe indicare che non sono stati trovati punti di ingresso e che è necessario aggiornare i tipi di ruolo della funzione o sdv-map.h. Per altre informazioni, vedere Uso delle dichiarazioni del tipo di ruolo della funzione e approvazione del file Sdv-map.h .

  • smvexecute-FinalCompile.log: uno di questi file viene creato per ogni regola verificata da sdv ed è disponibile nella sottocartella "sdv\check[nome regola]" creata nel progetto driver. Questo file mostra l'output del tentativo di SDV di compilare il driver con il modello del sistema operativo e una regola specifica.

  • smvexecute-CheckRule.log: uno di questi file viene creato per ogni regola verificata da sdv ed è disponibile nella sottocartella "sdv\check[nome regola]" creata nel progetto driver. Questo file mostra l'output del tentativo di SDV di verificare la regola specificata sul driver.

È consigliabile cercare il file corrispondente all'elenco di fasi contrassegnate come non riuscite nell'output del comando. Se si è verificato l'errore nei passaggi FinalCompile o CheckRule , assicurarsi di controllare la cartella per la regola specifica elencata come non riuscita.