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


Общие сведения о обработчике отладчика

В этой документации описывается использование подсистемы отладчика и написание расширений, которые будут выполняться в 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.

  • Библиотеки DLL расширения WdbgExts. Они основаны на прототипах в файле заголовка wdbgexts.h. Каждая библиотека DLL этого типа экспортирует одну или несколько команд расширения WdbgExts. Эти команды расширения используют исключительно API WdbgExts.

API DbgEng можно использовать для создания расширений или автономных приложений. API WdbgExts содержит подмножество функциональных возможностей API обработчика отладчика и может использоваться только расширениями.

Все расширения отладчика должны компилироваться и создаваться с помощью служебной программы сборки. Служебная программа сборки входит в комплект драйверов Windows (WDK).

Примеры кода расширения устанавливаются как часть пакета Средств отладки для Windows, если вы выполняете пользовательскую установку и выбираете компонент SDK и все его подкомпоненты. Их можно найти в подкаталоге sdk\samples каталога установки Средств отладки для Windows.

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

Написание расширений пользовательского отладчика анализа

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

Настройка выходных данных отладчика с помощью DML

Вы можете настроить выходные данные отладчика с помощью DML. Дополнительные сведения см. в разделе Настройка выходных данных отладчика с помощью DML.

Использование JavaScript для расширения возможностей отладчика

Используйте JavaScript для создания скриптов, которые понимают объекты отладчика и расширяют и настраивают возможности отладчика. Поставщики JavaScript связывание языка сценариев с внутренней объектной моделью отладчика. Поставщик скриптов отладчика JavaScript позволяет использовать JavaScript с отладчиком. Дополнительные сведения см. в статье Скрипты отладчика JavaScript.