Sdílet prostřednictvím


Diagnostika ověřovatele statických ovladačů

SDV má režim diagnostiky, který vám a Microsoftu může pomoct s řešením problémů, se kterými může SDV narazit. Pokud je povolený režim diagnostiky, SDV zaznamenává zprávy do řady souborů ve vašem projektu ovladače, jeden soubor pro každou fázi ověření a pravidlo.

Povolení diagnostiky

Režim diagnostiky pro SDV (označovaný také jako režim ladění) je momentálně možné povolit pouze při spuštění z příkazového řádku. Další podrobnosti o spuštění z příkazového řádku najdete v tématu Příkazy Nástroje pro ověření statického ovladače (MSBuild).

Pokud chcete aktivovat diagnostiku, přidejte příznak /debug za příkaz /check . Například:

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

Povolení diagnostiky způsobí výrazně větší výstup do příkazového okna a také vytvoření konkrétních souborů protokolu.

Principy diagnostiky

SDV vytvoří v každé fázi provádění několik souborů, které poskytnou podrobnosti o daném kroku. Pokud SDV selže v průběhu provádění, nevytváří žádné diagnostické soubory pro pozdější fáze.

Vytvořené soubory jsou v pořadí:

  • smvexecute-NormalBuild.log: Nachází se ve zdrojovém adresáři ovladače a zobrazuje výstup počátečního pokusu SDV o sestavení ovladače bez další instrumentace a analýzy.

  • smvexecute-InterceptedBuild.log: Nachází se ve zdrojovém adresáři vašeho ovladače a zobrazuje výstup z procesu sestavení ovladače prostřednictvím SDV s přidanými háky analýzy.

  • smvcl.log: Nachází se v adresáři "sdv" vytvořeném v projektu ovladače pomocí SDV. Zobrazuje výstup kompilátoru kroku InterceptedBuild. Pokud se v smvexecute-InterceptedBuild.log zobrazí chyba, možná najdete další podrobnosti v smvcl.log.

  • smvexecute-Scan.log: Je umístěn v adresáři "sdv", který vytvořilo SDV ve vašem projektu ovladače. Ukazuje výsledek pokusu SDV o skenování ovladače s cílem nalézt vstupní body. Může dojít k chybě, která může naznačovat, že nebyly nalezeny žádné vstupní body, a měli byste aktualizovat typy rolí funkce nebo soubor sdv-map.h. Další informace najdete v tématu Použití deklarací typu role funkce a schválení souboru Sdv-map.h .

  • smvexecute-FinalCompile.log: Jeden z těchto souborů se vytvoří pro každé pravidlo ověřené pomocí sdv a najdete ho v podsložce SDV podsložky sdv\check[název pravidla]" vytvořené v projektu ovladače. Tento soubor ukazuje výstup pokusu ODV sestavit ovladač pomocí modelu operačního systému a konkrétního pravidla.

  • smvexecute-CheckRule.log: Jeden z těchto souborů se vytvoří pro každé pravidlo ověřené pomocí sdv a najdete ho v podsložce SDV podsložky sdv\check[název pravidla]" vytvořené v projektu ovladače. Tento soubor ukazuje výstup pokusu SDV ověřit zadané pravidlo vůči vašemu ovladači.

Ve výstupu příkazu byste měli vyhledat soubor odpovídající fázi, která je uvedena jako nezdařená. Pokud k chybě došlo v krocích FinalCompile nebo CheckRule , nezapomeňte zkontrolovat složku pro konkrétní pravidlo uvedené jako neúspěšné.