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