Среды отладки

Существует шесть доступных сред отладки:

  • Windbg
  • WinDbg (классическая модель)
  • Отладчик ядра (KD)
  • NTKD
  • Отладчик консоли (CDB)
  • Символьный отладчик NT (NTSD)

В следующих разделах описаны среды отладки.

Windbg

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

Дополнительные сведения см. в разделе "Функции WinDbg"

WinDbg (классическая модель)

Отладчик Microsoft Windows WinDbg (классическая версия) — это отладчик на основе Windows, который может выполнять отладку в режиме пользователя и в режиме ядра. WinDbg обеспечивает отладку для ядра Windows, драйверов в режиме ядра и системных служб, а также приложений и драйверов в пользовательском режиме.

WinDbg использует форматы отладочных символов Visual Studio для отладки на уровне источника. Он может получить доступ к любому символу или переменной из модуля с файлами символов PDB и получить доступ к имени любой общедоступной функции, предоставляемой модулями, которые были скомпилированы с файлами символов COFF (например, windows DBG-файлы).

WinDbg может просматривать исходный код, задавать точки останова, просматривать переменные (включая объекты C++), трассировки стека и память. Его командное окно отладчика позволяет пользователю выполнять различные команды.

Для отладки в режиме ядра WinDbg обычно требуется два компьютера (главный компьютер и целевой компьютер). WinDbg также поддерживает различные параметры удаленной отладки для целевых объектов в пользовательском режиме и в режиме ядра.

WinDbg — это графический интерфейс, который является аналогом CDB/NTSD и KD/NTKD.

KD

Отладчик ядра Майкрософт (KD) — это консольная программа на основе символов, которая обеспечивает подробный анализ активности в режиме ядра во всех операционных системах на основе NT. KD можно использовать для отладки компонентов и драйверов в режиме ядра или для мониторинга поведения самой операционной системы. KD также поддерживает отладку мультипроцессора.

Как правило, KD не выполняется на отлаживаемом компьютере. Для отладки в режиме ядра требуется два компьютера ( главный компьютер и целевой компьютер).

NTKD

Существует вариант отладчика KD с именем NTKD. Он идентичен KD во всех отношениях, за исключением того, что он создает новое текстовое окно при запуске, в то время как KD наследует окно командной строки, из которого он был вызван.

CDB

Отладчик консоли Microsoft (CDB) — это консольная программа на основе символов, которая обеспечивает низкоуровневый анализ памяти и конструкций в пользовательском режиме Windows. Отладчик консоли имен используется для указания того, что CDB классифицируется как консольное приложение. Это не означает, что целевое приложение должно быть консольным приложением. На самом деле CDB полностью поддерживает отладку консольных приложений и графических программ Windows.

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

С помощью CDB можно отображать и выполнять программный код, задавать точки останова и проверять и изменять значения в памяти. CDB может анализировать двоичный код, разбирая его и отображая инструкции по сборке. Он также может анализировать исходный код напрямую.

Так как CDB может получить доступ к расположениям памяти через адреса или глобальные символы, вы можете ссылаться на данные и инструкции по имени, а не по адресу, что упрощает поиск и отладку определенных разделов кода. CDB поддерживает отладку нескольких потоков и процессов. Он расширяем и может читать и записывать как страницы, так и нестраничную память.

Если целевое приложение является консольным приложением, целевой объект будет совместно использовать окно консоли с CDB. Чтобы создать отдельное окно консоли для целевого консольного приложения, используйте параметр командной строки -2 .

NTSD

Существует вариант отладчика CDB с именем Microsoft NT Symbolic Debugger (NTSD). Она идентична CDB во всех отношениях, за исключением того, что она создает новое текстовое окно при запуске, в то время как CDB наследует окно командной строки, из которого он был вызван.

Так как команда start также может использоваться для создания нового окна консоли, следующие две конструкции дают одинаковые результаты:

start cdb parameters
ntsd parameters

Можно перенаправить входные и выходные данные из NTSD (или CDB), чтобы его можно было управлять отладчиком ядра (Visual Studio, WinDbg или KD). Если этот метод используется с NTSD, окно консоли не будет отображаться вообще. Таким образом, управление NTSD из отладчика ядра особенно полезно, так как это приводит к чрезвычайно упрощенной отладчике, которая практически не накладывает нагрузку на компьютер, содержащий целевое приложение. Это сочетание можно использовать для отладки системных процессов, завершения работы и последующих этапов загрузки. Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра.

См. также

Отладка Windows

Функции WinDbg