Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует шесть доступных сред отладки:
- 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 из отладчика ядра особенно полезно, так как это приводит к чрезвычайно легкому отладчику, который практически не создаёт никакой нагрузки на компьютер, на котором находится целевое приложение. Это сочетание можно использовать для отладки системных процессов, завершения работы и последующих этапов загрузки. Дополнительные сведения см. в разделе "Управление отладчиком пользовательского режима" из отладчика ядра.