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

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

Чтобы приступить к отладке Windows, выполните задачи, описанные в этой статье.

1. Определение узла и целевого объекта

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

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

host and target pcs connected with a double arrow.

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

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

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

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

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

Если ваша цель состоит в отладке драйвера, определите, является ли драйвер драйвером в режиме ядра или драйвером пользовательского режима. Windows драйверы модели драйвера (WDM) и Kernel-Mode Driver Framework (KMDF) являются драйверами в режиме ядра. Как имена sugests, драйверы User-Mode Driver Framework (UMDF) являются драйверами пользовательского режима.

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

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

Сведения об использовании отладчика в режиме ядра см. в следующих статьях:

Сведения об использовании отладчика в пользовательском режиме см. в статье "Приступая к работе с WinDbg( в пользовательском режиме)".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Со временем вы будете использовать различные команды отладки при работе в отладчике. Используйте команду HH (open HTML help file) в отладчике, чтобы отобразить сведения о любой команде отладки. Дополнительные сведения о доступных командах см. в справочнике по отладчику.

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

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

В этой документации предполагается знание внутренних Windows. Дополнительные сведения о внутренних Windows (включая использование памяти, контекст, потоки и процессы), ознакомьтесь с дополнительными ресурсами, такими как Windows Internals by Mark Russinovich, Дэвид Соломон и Алекс Ionescu.

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

К дополнительным ресурсам относятся следующие книги и видео:

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

См. также