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


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

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

  • 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-файлов символов (например, файлы .dbg Windows).

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