Начало работы с отладкой Windows

В этой статье описывается, как приступить к отладке для Windows. Если ваша цель — использовать отладчик для анализа аварийного дампа, см. статью "Анализ файлов аварийного дампа с помощью WinDbg".

Чтобы приступить к отладке Windows, выполните следующие действия.

1. Определение узлов и целевых систем

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

Целевой объект --------------------------------------------------> узла <

Diagram illustrating the connection between host and target systems with a double arrow.

В некоторых ситуациях в качестве второй системы можно использовать виртуальную машину. Например, виртуальный компьютер может работать на том же компьютере, что и код, который требуется выполнить отладку. Однако если код взаимодействует с низким уровнем оборудования, использование виртуального компьютера может оказаться не лучшим подходом. Дополнительные сведения см. в разделе "Настройка отладки сети" виртуальной машины — KDNET.

2. Определение типа отладчика: режима ядра или пользовательского режима

Затем необходимо определить, следует ли использовать отладку в режиме ядра или в пользовательском режиме.

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

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

Если ваша цель состоит в отладке драйвера, определите, является ли драйвер драйвером режима ядра или драйвером пользовательского режима. Драйверы модели драйверов Windows (WDM) и платформа драйвера в режиме ядра (KMDF) являются драйверами в режиме ядра. Как говорится в названии, драйверы среда выполнения платформы драйвера режима пользователя (UMDF) являются драйверами пользовательского режима.

Для некоторых проблем может быть трудно определить, в каком режиме выполняется код. В этом случае может потребоваться выбрать один режим и узнать, какие сведения доступны в этом режиме. Некоторые проблемы требуют использования отладчика как в пользовательском режиме, так и в режиме ядра.

В зависимости от режима отладки может потребоваться настроить и использовать отладчики разными способами. Некоторые команды отладки работают одинаково в обоих режимах, а некоторые команды работают по-разному.

Дополнительные сведения об использовании отладчика в режиме ядра:

Дополнительные сведения об использовании отладчика в пользовательском режиме:

3. Выбор среды отладчика

Отладчик WinDbg хорошо работает в большинстве случаев, но иногда может потребоваться использовать другой отладчик, например отладчик консоли для автоматизации или Visual Studio. Дополнительные сведения см. в разделе "Отладка сред".

4. Определение способа подключения целевого объекта и узла

Как правило, целевые и хост-системы подключены сетью Ethernet. Если вы выполняете ранние действия или у вас нет подключения Ethernet на устройстве, доступны другие параметры сетевого подключения. Дополнительные сведения см. в следующих статьях:

5. Выберите 32-разрядные или 64-разрядные средства отладки

Требуется ли отладчик с 32-разрядной или 64-разрядной версией Windows, работающей в целевых и ведущих системах, а также отладчиком 32-разрядного или 64-разрядного кода. Дополнительные сведения см. в разделе "Выбор 32-разрядных или 64-разрядных средств отладки".

6. Настройка символов

Чтобы использовать все расширенные функции, которые предоставляет WinDbg, необходимо загрузить соответствующие символы. Если у вас нет правильно настроенных символов, вы получите сообщения, указывающие, что символы недоступны при попытке использовать функции, зависящие от символов. Дополнительные сведения см. в разделе "Символы для отладки Windows".

7. Настройка исходного кода

Если ваша цель заключается в отладке собственного исходного кода, необходимо настроить путь к исходному коду. Дополнительные сведения см. в разделе "Путь к источнику".

8. Знакомство с операцией отладчика

В разделе операции отладчика этой документации описывается операция отладчика для различных задач. Например, загрузка библиотек DLL расширения отладчика объясняет, как загружать расширения отладчика.

9. Знакомство с методами отладки

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

10. Использование ссылочных команд отладчика

При работе с отладчиком можно использовать различные команды отладки. Используйте команду HH в отладчике, чтобы отобразить полезные сведения о любой команде отладки. Дополнительные сведения о доступных командах см . в справочнике по отладчику.

11. Использование расширений отладки для конкретных технологий

Существует несколько расширений отладки, которые можно использовать для анализа структур данных, относящихся к домену. Дополнительные сведения см. в разделе "Специализированные расширения".

В этой документации предполагается, что у вас есть некоторые знания о основных внутренних компонентах Windows. Чтобы узнать больше о внутренних компонентах Windows, включая использование памяти, контекст, потоки и процессы, вы можете просмотреть такие ресурсы, как Внутренние компоненты Windows Павел Йосифович, Марк Э. Руссинович, Дэвид А. Соломон и Алекс Ионеску.

13. Просмотр дополнительных ресурсов отладки

Другие ресурсы включают следующие книги и видео:

  • В отладке Windows: практические стратегии отладки и трассировки с помощью Tarik Soulami
  • Расширенная отладка Windows Марио Hewardt и Даниэль Прават
  • Видео дефрагментации инструментов, эпизоды 13–29, все о WinDbg

См. также