Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как приступить к отладке Windows с помощью 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 расширения отладчика".
Узнайте о внутренностях Windows.
В этой документации предполагается, что вы обладаете некоторыми знаниями о основных внутренностях Windows. Дополнительные сведения о внутренних механизмах Windows, включая использование памяти, контекст, потоки и процессы, ознакомьтесь с такими ресурсами, как Windows Internals Павел Йосифович, Марк Э. Руссинович, Дэвид А. Соломон и Алекс Ионеску.
14. Просмотр дополнительных ресурсов отладки
Другие ресурсы включают следующие книги и видео:
- Отладка в Windows: практические стратегии для отладки и трассировки от Тарика Сулами
- Продвинутая отладка Windows Марио Хьюардт и Даниэль Прават
- Инструменты дефрагментации видеосерия, эпизоды 13–29, все о WinDbg
Дальнейшие шаги
Выберите режим отладки, чтобы продолжить:
Отладка в режиме ядра (для драйверов и компонентов ОС):
- Начало работы с WinDbg (режим ядра)
- Отладка универсальных драйверов — пошаговая лаборатория (эхо-режим ядра)
Отладка в пользовательском режиме (для приложений):
Дополнительные рекомендации по настройке: