Diagnostica del driver statico
SDV ha una modalità di diagnostica che consente di risolvere i problemi che potrebbero verificarsi in SDV e Microsoft. 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.
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 . Ad 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.
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 di origine del driver e mostra l'output di SDV che compila il driver con hook 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 come non riuscito 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.