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


Файлы метаданных для подключаемых модулей расширения анализа

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

Создайте файл метаданных с тем же именем, что и подключаемый модуль расширения анализа, и расширение .alz. Например, если подключаемый модуль расширения анализа называется MyAnalyzer.dll, файл метаданных должен иметь имя MyAnalyzer.alz. Поместите файл метаданных в тот же каталог, что и подключаемый модуль расширения анализа.

Файл метаданных для подключаемого модуля расширения анализа — это текстовый файл ASCII, содержащий пары "ключ-значение". Ключи и значения разделяются пробелами. Ключ может иметь любой символ, отличный от пробелов. В ключах регистр не учитывается.

После ключа и следующего пробела начинается соответствующее значение. Значение может иметь одну из следующих форм.

  • Любой набор символов в конце строки. Эта форма подходит для значений, которые не содержат символов новой строки.

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

  • Любой набор символов между фигурными скобками { }. Форма работает для значений, содержащих символы новой строки.

Строка, начинаемая с #, является комментарием и игнорируется. Комментарии могут начинаться только там, где ожидаются ключи.

В файле метаданных можно использовать следующие ключи.

Ключ Описание
PluginId Строка — определяет подключаемый модуль.
DebuggeeClass Строка — возможные значения: "Kernel" и "User". Указывает, что подключаемый модуль заинтересован в анализе только сбоев режима ядра или только сбоев в пользовательском режиме.
BugCheckCode 32-разрядный код проверка ошибок — указывает, что подключаемый модуль заинтересован в анализе этой ошибки проверка коде. В одном файле метаданных можно указать несколько кодов проверка ошибок.
ExceptionCode 32-разрядный код исключения — указывает, что подключаемый модуль заинтересован в анализе этого кода исключения. В одном файле метаданных можно указать несколько кодов исключений.
ExecutableName Строка — указывает, что подключаемый модуль заинтересован только в сеансах, где это исполняемый файл анализируемого процесса. В одном файле метаданных можно указать несколько имен исполняемых файлов.
ImageName Строка — указывает, что подключаемый модуль заинтересован только в сеансах, в которых анализ по умолчанию считает, что этот образ (dll, sys или exe) неисправен. Подключаемый модуль вызывается после того, как анализ определил, какой образ неисправен. В одном файле метаданных можно указать несколько имен изображений.
MaxTagCount Integer — максимальное количество настраиваемых тегов, необходимых подключаемого модуля. Пользовательские теги — это теги, отличные от тегов, определенных в extsfns.h.

Примеры файлов метаданных

В следующем файле метаданных описывается подключаемый модуль, который заинтересован в анализе 0xE2 кода проверка ошибок. (Помните, что последняя строка должна заканчиваться символом новой строки.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

В следующем файле метаданных описывается подключаемый модуль, который заинтересован в анализе проверок ошибок 0x8, 0x9 и 0xA, если MyDriver.sys считается неисправным модулем.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

В следующем файле метаданных описывается подключаемый модуль, который заинтересован в анализе кода исключений 0xC0000005, является ли MyApp.exe исполняемым файлом анализируемого процесса. Кроме того, подключаемый модуль может создавать до трех настраиваемых тегов.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Средства отладки для Windows имеют пример, который можно использовать для создания модуля расширения отладчика с именем dbgexts.dll. Этот модуль расширения реализует несколько команд расширения отладчика, но он также может служить подключаемым модулем расширения анализа. то есть экспортирует _EFN_Analyze функцию. Ниже приведен файл метаданных, описывающий dbgexts.dll как подключаемый модуль расширения анализа.

PluginId         PluginSample
DebuggeeClass   User
ExceptionCode   0xc0000005
ExecutableName      cdb.exe
ExecutableName      windbg.exe
#
# Custom tag descriptions 
#
TagDesc         0xA0000000  SAMPLE_PLUGIN_DEBUG_TEXT    {Sample debug help text from plug-in analysis}
#

См. также раздел

Написание подключаемого модуля расширения анализа для расширения !analyze

_EFN_Analyze

!Анализировать