Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как приступить к отладке Windows с помощью WinDbg и других средств отладки. Вы узнаете, как:
- Установка отладчика и настройка узлов и целевых систем
- Настройка среды отладки
- Основные методы отладки для сценариев режима ядра и пользовательского режима
Заметка: Если вы хотите проанализировать аварийный дамб вместо этого, см. раздел "Анализ файлов аварийного дампа с помощью WinDbg".
Чтобы приступить к отладке Windows, выполните следующие действия.
1. Установка отладчика Windows
Установите WinDbg, чтобы начать отладку приложений и драйверов Windows. Подробные инструкции по установке см. в разделе "Установка WinDbg".
2. Определите хост и целевые системы
Обычно для отладки используются две отдельные компьютерные системы, так как выполнение инструкций на процессоре обычно приостановлено во время процесса. Отладчик работает на узле
Хост <--------------------------------------------------> Цель
В некоторых ситуациях в качестве второй системы можно использовать виртуальную машину. Например, виртуальный компьютер может работать на том же компьютере, что и код, который требуется выполнить отладку. Однако если код взаимодействует с низким уровнем оборудования, использование виртуального компьютера может оказаться не лучшим подходом. Для получения дополнительной информации см. раздел о настройке отладки сети виртуальной машины — KDNET.
3. Определение типа отладчика: режима ядра или пользовательского режима
Затем необходимо определить, следует ли использовать отладку в режиме ядра или в пользовательском режиме.
Операционная система и привилегированные программы выполняются в режиме ядра . Код в режиме ядра имеет разрешение на доступ к любой части системы, и он не ограничен, как код пользовательского режима. Код режима ядра может получить доступ к любой части любого другого процесса, выполняемого в пользовательском режиме или в режиме ядра. Большая часть основных функций ОС и многие драйверы аппаратных устройств выполняются в режиме ядра.
Приложения и подсистемы на компьютере выполняются в пользовательском режиме. Процессы, выполняемые в пользовательском режиме, делают это в пределах собственных виртуальных адресных пространств. Они ограничены от прямого доступа ко многим частям системы, включая системное оборудование, память, которая не выделяется для их использования, и другие части системы, которые могут компрометировать целостность системы. Процессы, выполняемые в пользовательском режиме, эффективно изолированы от системы и от других процессов пользовательского режима, поэтому они не могут вмешиваться в эти ресурсы.
Если ваша цель состоит в отладке драйвера, определите, является ли драйвер драйвером режима ядра или драйвером пользовательского режима. Драйверы модели драйверов Windows (WDM) и Kernel-Mode Driver Framework (KMDF) являются драйверами в режиме ядра. Как показано в названии, драйверы User-Mode Driver Framework (UMDF) являются драйверами пользовательского режима.
Для некоторых проблем может быть трудно определить, в каком режиме выполняется код. В этом случае может потребоваться выбрать один режим и узнать, какие сведения доступны в этом режиме. Некоторые проблемы требуют использования отладчика как в пользовательском режиме, так и в режиме ядра.
В зависимости от режима отладки может потребоваться настроить и использовать отладчики разными способами. Некоторые команды отладки работают одинаково в обоих режимах, а некоторые команды работают по-разному.
Дальнейшие действия по отладке в режиме ядра
- Начало работы с WinDbg (режим ядра) — завершение установки и первого сеанса отладки
- Отладка универсальных драйверов: пошаговая лабораторная работа (режим ядра эхо) — практическое занятие с драйвером эхо
- Драйверы отладки: пошаговая лаборатория (режим ядра Sysvad) — практическая работа с аудиодрайвером
Дальнейшие действия по отладке в пользовательском режиме
- Начало работы с WinDbg (режим пользователя) — завершение установки и первого сеанса отладки
4. Выбор среды отладчика
Отладчик WinDbg хорошо работает в большинстве случаев, но иногда может потребоваться использовать другой отладчик, например отладчик консоли для автоматизации или Visual Studio. Дополнительные сведения см. в средах отладки.
5. Определите, как подключить цель и хост
Как правило, вы подключаете целевые и хост-системы с помощью сети Ethernet. Если вы выполняете начальную настройку или у вас нет подключения Ethernet на устройстве, то есть доступные другие варианты сетевого подключения. Дополнительные сведения см. в следующих статьях:
- Настройте отладку ядра через сеть KDNET автоматически
- Настройка отладки сети виртуальной машины — KDNET
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 команду, за которой следует имя команды.
Примеры:
.hh bp # Get help on breakpoint commands
.hh k # Get help on call stack commands
Полный список доступных команд см. в справочнике по отладчику.
12. Использование расширений отладки для конкретных технологий
Для анализа структур данных, относящихся к домену, можно использовать несколько расширений отладки. Дополнительные сведения см. в разделе Специализированные расширения. Сведения о загрузке расширений отладчика см. в разделе "Загрузка библиотек DLL расширения отладчика".
13. Узнайте о связанных внутренних механизмах Windows
В этой документации предполагается, что у вас есть некоторые знания о основных внутренних компонентах Windows. Чтобы узнать больше о внутренних компонентах Windows, включая использование памяти, контекст, потоки и процессы, можно просмотреть такие ресурсы, как Внутренние компоненты Windows Павел Yosifovich, Марк Э. Руссинович, Дэвид А. Соломон и Алекс Ионеску.
14. Просмотр дополнительных ресурсов отладки
Другие ресурсы включают следующие книги и видео:
- Внутри отладки Windows: практические стратегии отладки и трассировки Тарик Суламми
- Продвинутая отладка Windows Марио Хьюард и Дэниел Прават
- Инструменты дефрагментации видеосерия, эпизоды 13–29, все о WinDbg
Дальнейшие шаги
Выберите режим отладки, чтобы продолжить:
Отладка в режиме ядра (для драйверов и компонентов ОС):
- Начало работы с WinDbg (режим ядра)
- Отладка универсальных драйверов — пошаговая лаборатория (эхо-режим ядра)
Отладка в пользовательском режиме (для приложений):
Дополнительные рекомендации по настройке: