Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой документации описывается использование обработчика отладчика и запись расширений, которые будут выполняться в WinDbg, KD, CDB и NTSD. Эти расширения отладчика можно использовать при отладке в режиме пользователя или в режиме ядра в Microsoft Windows.
Движок отладчика
Модуль отладчика предоставляет интерфейс для изучения и управления целевыми объектами отладки в пользовательском режиме и режиме ядра в Microsoft Windows.
Обработчик отладчика может получать целевые объекты, устанавливать точки останова, отслеживать события, символы запросов, читать и записывать память, а также управлять потоками и процессами в целевом объекте.
Обработчик отладчика можно использовать для записи библиотек расширений отладчика и автономных приложений. Такие приложения приложения подсистемы отладки. Приложение движка отладчика, использующее полную функциональность движка отладчика, является отладчиком. Например, WinDbg, CDB, NTSD и KD являются отладчиками; обработчик отладчика предоставляет основную часть их функциональных возможностей.
API движка отладчика определяется прототипами в файле заголовка dbgeng.h.
Неполная документация
Это предварительный документ и в настоящее время является неполным.
Для многих понятий, связанных с отладчиками и подсистемой отладчика, которые еще не описаны здесь, ознакомьтесь с разделом "Методы отладки " этой документации.
Чтобы получить некоторые из незадокументированных функций API обработчика отладчика, используйте метод Execute для выполнения отдельных команд отладчика.
Расширения
Вы можете создать собственные команды отладки, написав и скомпилировав библиотеку DLL расширения. Например, может потребоваться написать команду расширения для отображения сложной структуры данных.
Существует три разных типа библиотек DLL расширения отладчика:
Библиотеки расширения DLL DbgEng. Они основаны на прототипах в файле заголовка dbgeng.h. Каждая библиотека DLL этого типа может экспортировать команды расширения DbgEng. Эти команды расширения используют API обработчика отладчика, а также могут использовать API WdbgExts.
DLL библиотек расширения EngExtCpp. Они основаны на прототипах в файлах заголовков engextcpp.h и dbgeng.h. Каждая библиотека DLL этого типа может экспортировать команды расширения DbgEng. Эти команды расширения используют API обработчика отладчика и платформу расширения EngExtCpp, а также могут использовать API WdbgExts.
расширения WdbgExts библиотеки DLL. Они основаны на прототипах в файле заголовка wdbgexts.h. Каждая библиотека DLL этого типа экспортирует одну или несколько команд расширения WdbgExts. Эти команды расширения используют исключительно API WdbgExts.
API DbgEng можно использовать для создания расширений или автономных приложений. API WdbgExts содержит подмножество функциональных возможностей API обработчика отладчика и может использоваться только расширениями.
Все расширения отладчика должны компилироваться и создаваться с помощью служебной программы сборки. Программа сборки включена в комплект драйверов Windows (WDK).
Примеры кода расширения устанавливаются в составе пакета средств отладки для Windows, если вы выполняете настраиваемую установку и выбираете компонент пакета SDK и все его вложенные компоненты. Их можно найти в подкаталоге sdk\samples каталога средств отладки для установки Windows.
Самый простой способ написания новых расширений отладчика — изучение примеров расширений. Каждый пример расширения включает файлы makefile и исходные файлы для использования со служебной программой сборки. Оба типа расширений представлены в примерах.
написание расширений отладчика пользовательского анализа
Вы можете расширить возможности команды отладчика !analysis, написав подключаемый модуль расширения анализа. Путем предоставления подключаемого модуля для расширения анализа, вы можете участвовать в анализе сбоя или исключения таким образом, который зависит от вашего собственного компонента или приложения. Когда вы пишете плагин расширения для анализа, вы также создаете файл метаданных, описывающий ситуации, в которых вы хотите, чтобы ваш плагин вызывался. Когда выполняется !analyze, он находит, загружает и запускает соответствующие плагины расширения для анализа. Дополнительные сведения см. в Создание пользовательских расширений для отладчика анализа
Настройка выходных данных отладчика с помощью DML
Выходные данные отладчика можно настроить с помощью DML. Дополнительные сведения см. в настройке выходных данных отладчика с помощьюDML.
использование JavaScript для расширения возможностей отладчика
Используйте JavaScript для создания скриптов, которые понимают объекты отладчика и расширяют и настраивают возможности отладчика. Поставщики JavaScript связывают скриптовый язык с внутренней объектной моделью отладчика. Поставщик скриптов отладчика JavaScript позволяет использовать JavaScript с отладчиком. Для получения дополнительной информации см. отладка скриптов JavaScript.