Udostępnij przez


Diagnostyka statycznego weryfikatora sterowników

SdV ma tryb diagnostyczny, który może pomóc Tobie i firmie Microsoft rozwiązywać problemy, które mogą napotkać sdV. Po włączeniu trybu diagnostyki SDV rejestruje komunikaty w serii plików w projekcie sterownika, po jednym na każdy etap weryfikacji i na każdą regułę.

Włączanie diagnostyki

Tryb diagnostyczny sdV (znany również jako tryb debugowania) może być obecnie włączony tylko w przypadku uruchamiania z wiersza polecenia. Aby uzyskać więcej informacji na temat uruchamiania z wiersza polecenia, zobacz Statyczne polecenia Weryfikatora sterowników (MSBuild).

Aby aktywować diagnostykę, dodaj flagę /debug po /check polecenia. Przykład:

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

Włączenie diagnostyki spowoduje znacznie więcej danych wyjściowych w oknie polecenia, a także utworzenie określonych plików dziennika.

Informacje o diagnostyce

SdV utworzy kilka plików na każdym etapie wykonywania, co zapewni szczegółowe informacje na temat tego kroku. Gdy SDV zakończy się niepowodzeniem podczas wykonywania, nie utworzy plików diagnostycznych dla dalszych etapów.

Utworzone pliki są w następującej kolejności:

  • smvexecute-NormalBuild.log: znajduje się on w katalogu źródłowym sterownika i pokazuje dane wyjściowe początkowej próby skompilowania sterownika sdV bez dodatkowej instrumentacji i analizy.

  • smvexecute-InterceptedBuild.log: jest umieszczony w katalogu źródłowym sterownika i pokazuje dane wyjściowe kompilacji SDV sterownika z haczykami analizy.

  • smvcl.log: znajduje się w katalogu "sdv" utworzonym w projekcie sterownika przez sdV. Przedstawia on dane wyjściowe kompilatora kroku InterceptedBuild. Jeśli wystąpi błąd w smvexecute-InterceptedBuild.log, może być możliwe znalezienie dodatkowych szczegółów w smvcl.log.

  • smvexecute-Scan.log: znajduje się on w katalogu "sdv" utworzonym w projekcie sterownika przez sdV. Przedstawia wynik próby SDV przeskanowania sterownika w celu znalezienia punktów wejścia. Błąd ten może wskazywać, że jeśli nie znaleziono żadnych punktów wejścia, należy zaktualizować typy ról funkcji lub plik sdv-map.h. Zobacz Deklaracje typów ról funkcji i Zatwierdzanie pliku Sdv-map.h aby uzyskać więcej informacji.

  • smvexecute-FinalCompile.log: Jeden z tych plików jest tworzony dla każdej reguły zweryfikowanej przez sdv i można go znaleźć w podfolderze SDV "sdv\check[nazwa reguły]" tworzony w projekcie sterownika. Ten plik przedstawia dane wyjściowe próby kompilacji sterownika przy użyciu modelu systemu operacyjnego i określonej reguły SDV.

  • smvexecute-CheckRule.log: Jeden z tych plików jest tworzony dla każdej reguły zweryfikowanej przez sdv i można go znaleźć w podfolderze SDV "sdv\check[nazwa reguły]" tworzonym w projekcie sterownika. Ten plik pokazuje wyniki próby weryfikacji wskazanej reguły względem sterownika przez SDV.

W danych wyjściowych polecenia należy wyszukać plik odpowiadający wypisowi etapu, który jest wymieniony jako błędny. Jeśli wystąpił błąd w krokach FinalCompile lub CheckRule, sprawdź folder konkretnej reguły, która została uznana za nierozwiązaną.