Поделиться через


Диагностика средства проверки статических драйверов

SDV имеет режим диагностики, который может помочь вам и Майкрософт устранить проблемы, с которыми может столкнуться SDV. Если режим диагностики включен, SDV записывает сообщения в ряд файлов в проекте драйвера, по одному на каждый этап проверки и на каждое правило.

Включение диагностики

Режим диагностики для SDV (также известный как режим отладки) в настоящее время можно включить только при запуске из командной строки. Дополнительные сведения о запуске из командной строки см. в статьях "Команды средства проверки статических драйверов" (MSBuild).

Чтобы активировать диагностику, добавьте флаг /debug после команды /check . Рассмотрим пример.

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

Включение диагностики приведет к значительно большему объему выходных данных в командном окне, а также созданию определенных файлов журнала.

Общие сведения о диагностике

SDV создаст несколько файлов на каждом этапе выполнения, которые будут предоставлять сведения об этом шаге. Если SDV завершается сбоем в процессе выполнения, он не создаст никаких файлов диагностики для последующих этапов.

Созданные файлы приведены в порядке:

  • smvexecute-NormalBuild.log. Это находится в исходном каталоге драйвера и отображает выходные данные первоначальной попытки SDV создать драйвер без дополнительного инструментирования и анализа.

  • smvexecute-InterceptedBuild.log. Этот файл находится в исходном каталоге драйвера и содержит результаты сборки драйвера SDV с добавленными элементами для анализа.

  • smvcl.log. Это находится в каталоге SDV, созданном в проекте драйвера SDV. В нем показаны выходные данные компилятора шага InterceptedBuild. Если вы видите сбой в smvexecute-InterceptedBuild.log, вы можете найти более подробную информацию в smvcl.log.

  • smvexecute-Scan.log. Это находится в каталоге SDV, созданном в проекте драйвера SDV. В нем показаны выходные данные попытки SDV проверить драйвер для поиска точек входа. Ошибка здесь может указывать на отсутствие точек входа, и вам следует обновить типы ролей функций или файл sdv-map.h. Дополнительные сведения см. в разделе "Использование объявлений типов ролей функции" и "Утверждение файла sdv-map.h".

  • smvexecute-FinalCompile.log. Один из этих файлов создается для каждого правила, проверенного sdv, и можно найти в подпапке SDV \check[rule name], созданном в проекте драйвера. В этом файле показаны выходные данные попытки SDV создать драйвер с помощью модели ОС и конкретного правила.

  • smvexecute-CheckRule.log. Один из этих файлов создается для каждого правила, проверенного sdv, и его можно найти в вложенной папке sdv\check[rule name], созданной в проекте драйвера. В этом файле показаны результаты попытки SDV проверки указанного правила против вашего драйвера.

Вы должны искать файл, который соответствует списку этапов, отмеченных как неудачные в выходных данных команды. Если произошел сбой на этапах FinalCompile или CheckRule, обязательно проверьте папку с указанным неисправным правилом.