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


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

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

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

1. Установка отладчика Windows

Сведения об установке WinDbg см. в разделе Install WinDbg.

2. Определите хост и целевые системы

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

Хост <--------------------------------------------------> Цель

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

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

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

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

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

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

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

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

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

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

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

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

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

5. Определите, как подключить цель и хост

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

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

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

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

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

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

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

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

В разделе «Операция отладчика» этой документации описывается работа отладчика для выполнения различных задач. Например, Сохранение файла журнала в WinDbg описывает, как WinDbg может записывать файл журнала, который записывает сеанс отладки.

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

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

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

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

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

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

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

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

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

См. также