Начало работы с отладкой Windows
В этой статье описывается, как приступить к отладке для Windows. Если ваша цель состоит в том, чтобы использовать отладчик для анализа аварийного дампа, ознакомьтесь с Анализ файлов аварийного дампа с помощью WinDbg.
Чтобы приступить к отладке Windows, выполните следующие действия.
1. Установка отладчика Windows
Сведения об установке WinDbg см. в разделе Install WinDbg.
2. Определите хост и целевые системы
Обычно для отладки используются две отдельные компьютерные системы, так как выполнение инструкций на процессоре обычно приостановлено во время процесса. Отладчик работает на узле
Хост <--------------------------------------------------> Цель
В некоторых ситуациях в качестве второй системы можно использовать виртуальную машину. Например, виртуальный компьютер может работать на том же компьютере, что и код, который требуется выполнить отладку. Однако если код взаимодействует с низким уровнем оборудования, использование виртуального компьютера может оказаться не лучшим подходом. Для получения дополнительной информации см. раздел о настройке отладки сети виртуальной машины — KDNET.
3. Определение типа отладчика: режима ядра или пользовательского режима
Затем необходимо определить, следует ли использовать отладку в режиме ядра или в пользовательском режиме.
Операционная система и привилегированные программы выполняются в режиме ядра . Код в режиме ядра имеет разрешение на доступ к любой части системы, и он не ограничен, как код пользовательского режима. Код режима ядра может получить доступ к любой части любого другого процесса, выполняемого в пользовательском режиме или в режиме ядра. Большая часть основных функций ОС и многие драйверы аппаратных устройств выполняются в режиме ядра.
Приложения и подсистемы на компьютере выполняются в пользовательском режиме. Процессы, выполняемые в пользовательском режиме, делают это в пределах собственных виртуальных адресных пространств. Они ограничены от прямого доступа ко многим частям системы, включая системное оборудование, память, которая не выделяется для их использования, и другие части системы, которые могут компрометировать целостность системы. Процессы, выполняемые в пользовательском режиме, эффективно изолированы от системы и от других процессов пользовательского режима, поэтому они не могут вмешиваться в эти ресурсы.
Если ваша цель состоит в отладке драйвера, определите, является ли драйвер драйвером режима ядра или драйвером пользовательского режима. Драйверы модели драйверов Windows (WDM) и Kernel-Mode Driver Framework (KMDF) являются драйверами в режиме ядра. Как показано в названии, драйверы User-Mode Driver Framework (UMDF) являются драйверами пользовательского режима.
Для некоторых проблем может быть трудно определить, в каком режиме выполняется код. В этом случае может потребоваться выбрать один режим и узнать, какие сведения доступны в этом режиме. Некоторые проблемы требуют использования отладчика как в пользовательском режиме, так и в режиме ядра.
В зависимости от режима отладки может потребоваться настроить и использовать отладчики разными способами. Некоторые команды отладки работают одинаково в обоих режимах, а некоторые команды работают по-разному.
Дополнительные сведения об использовании отладчика в режиме ядра:
- Начало работы с WinDbg (режим ядра)
- Отладка универсальных драйверов: пошаговые лаборатории (режим эхо-ядра)
- драйверы отладки: пошаговая лаборатория (режим ядра Sysvad)
Дополнительные сведения об использовании отладчика в пользовательском режиме:
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 в отладчике, чтобы отобразить полезные сведения о любой команде отладки. Дополнительную информацию о доступных командах можно найти в справочнике по отладчику .
12. Использование расширений отладки для конкретных технологий
Существует несколько расширений отладки, которые можно использовать для анализа структур данных, относящихся к домену. Дополнительные сведения см. в разделе Специализированные расширения. Загрузка DLL расширений отладчика объясняет, как загружать расширения отладчика.
13. Узнайте о связанных внутренних механизмах Windows
В этой документации предполагается, что у вас есть некоторые знания о основных внутренних компонентах Windows. Чтобы узнать больше о внутренних компонентах Windows, включая использование памяти, контекст, потоки и процессы, вы можете просмотреть такие ресурсы, как Внутренние элементы Windows Павел Йосифович, Марк Э. Руссинович, Дэвид А. Соломон и Алекс Ионеску.
14. Просмотр дополнительных ресурсов отладки
Другие ресурсы включают следующие книги и видео:
- Внутри отладки Windows: практические стратегии отладки и трассировки Тарик Суламми
- Продвинутая отладка Windows Марио Хьюард и Дэниел Прават
- Инструменты дефрагментации видеосерия, эпизоды 13–29, все о WinDbg
См. также
- Начало работы с WinDbg (режим ядра)
- Начало работы с WinDbg (режим пользователя)
- Выберите 32-разрядные или 64-разрядные средства отладки
- среды отладки
- Настройка отладки (режима ядра и пользовательского режима)
- Отладка универсальных драйверов — пошаговая лаборатория (эхо-режим ядра)
- драйверы отладки — пошаговые лаборатории (режим ядра Sysvad)