Начало работы с отладкой Windows
В этой статье описывается, как приступить к отладке для Windows. Если ваша цель — использовать отладчик для анализа аварийного дампа, см. статью "Анализ файлов аварийного дампа с помощью WinDbg".
Чтобы приступить к отладке Windows, выполните следующие действия.
1. Определение узлов и целевых систем
Обычно для отладки используются две отдельные компьютерные системы, так как выполнение инструкций на процессоре обычно приостановлено во время процесса. Отладчик выполняется в хост-системе и коде, который требуется выполнить отладку в целевой системе.
Целевой объект --------------------------------------------------> узла <
В некоторых ситуациях в качестве второй системы можно использовать виртуальную машину. Например, виртуальный компьютер может работать на том же компьютере, что и код, который требуется выполнить отладку. Однако если код взаимодействует с низким уровнем оборудования, использование виртуального компьютера может оказаться не лучшим подходом. Дополнительные сведения см. в разделе "Настройка отладки сети" виртуальной машины — KDNET.
2. Определение типа отладчика: режима ядра или пользовательского режима
Затем необходимо определить, следует ли использовать отладку в режиме ядра или в пользовательском режиме.
Операционная система и привилегированные программы выполняются в режиме ядра. Код в режиме ядра имеет разрешение на доступ к любой части системы, и он не ограничен, как код пользовательского режима. Код режима ядра может получить доступ к любой части любого другого процесса, выполняемого в пользовательском режиме или в режиме ядра. Большая часть основных функций ОС и многие драйверы аппаратных устройств выполняются в режиме ядра.
Приложения и подсистемы на компьютере выполняются в пользовательском режиме. Процессы, выполняемые в пользовательском режиме, делают это в пределах собственных виртуальных адресных пространств. Они ограничены от прямого доступа ко многим частям системы, включая системное оборудование, память, которая не выделяется для их использования, и другие части системы, которые могут компрометировать целостность системы. Процессы, выполняемые в пользовательском режиме, эффективно изолированы от системы и от других процессов пользовательского режима, поэтому они не могут вмешиваться в эти ресурсы.
Если ваша цель состоит в отладке драйвера, определите, является ли драйвер драйвером режима ядра или драйвером пользовательского режима. Драйверы модели драйверов Windows (WDM) и платформа драйвера в режиме ядра (KMDF) являются драйверами в режиме ядра. Как говорится в названии, драйверы среда выполнения платформы драйвера режима пользователя (UMDF) являются драйверами пользовательского режима.
Для некоторых проблем может быть трудно определить, в каком режиме выполняется код. В этом случае может потребоваться выбрать один режим и узнать, какие сведения доступны в этом режиме. Некоторые проблемы требуют использования отладчика как в пользовательском режиме, так и в режиме ядра.
В зависимости от режима отладки может потребоваться настроить и использовать отладчики разными способами. Некоторые команды отладки работают одинаково в обоих режимах, а некоторые команды работают по-разному.
Дополнительные сведения об использовании отладчика в режиме ядра:
- Начало работы с WinDbg (режим ядра)
- Отладка универсальных драйверов: пошаговые лаборатории (режим эхо-ядра)
- Драйверы отладки: пошаговая лаборатория (режим ядра Sysvad)
Дополнительные сведения об использовании отладчика в пользовательском режиме:
3. Выбор среды отладчика
Отладчик WinDbg хорошо работает в большинстве случаев, но иногда может потребоваться использовать другой отладчик, например отладчик консоли для автоматизации или Visual Studio. Дополнительные сведения см. в разделе "Отладка сред".
4. Определение способа подключения целевого объекта и узла
Как правило, целевые и хост-системы подключены сетью Ethernet. Если вы выполняете ранние действия или у вас нет подключения Ethernet на устройстве, доступны другие параметры сетевого подключения. Дополнительные сведения см. в следующих статьях:
- Автоматическая настройка отладки сетевого ядра KDNET
- Настройка отладки сети виртуальной машины — KDNET
5. Выберите 32-разрядные или 64-разрядные средства отладки
Требуется ли отладчик с 32-разрядной или 64-разрядной версией Windows, работающей в целевых и ведущих системах, а также отладчиком 32-разрядного или 64-разрядного кода. Дополнительные сведения см. в разделе "Выбор 32-разрядных или 64-разрядных средств отладки".
6. Настройка символов
Чтобы использовать все расширенные функции, которые предоставляет WinDbg, необходимо загрузить соответствующие символы. Если у вас нет правильно настроенных символов, вы получите сообщения, указывающие, что символы недоступны при попытке использовать функции, зависящие от символов. Дополнительные сведения см. в разделе "Символы для отладки Windows".
7. Настройка исходного кода
Если ваша цель заключается в отладке собственного исходного кода, необходимо настроить путь к исходному коду. Дополнительные сведения см. в разделе "Путь к источнику".
8. Знакомство с операцией отладчика
В разделе операции отладчика этой документации описывается операция отладчика для различных задач. Например, загрузка библиотек DLL расширения отладчика объясняет, как загружать расширения отладчика.
9. Знакомство с методами отладки
Стандартные методы отладки применяются к большинству сценариев отладки, а примеры включают настройку точек останова, проверку стека вызовов и поиск утечки памяти. Специализированные методы отладки применяются к определенным технологиям или типам кода. К примерам относятся отладка самонастраивающийся, отладка KMDF и отладка RPC.
10. Использование ссылочных команд отладчика
При работе с отладчиком можно использовать различные команды отладки. Используйте команду HH в отладчике, чтобы отобразить полезные сведения о любой команде отладки. Дополнительные сведения о доступных командах см . в справочнике по отладчику.
11. Использование расширений отладки для конкретных технологий
Существует несколько расширений отладки, которые можно использовать для анализа структур данных, относящихся к домену. Дополнительные сведения см. в разделе "Специализированные расширения".
12. Сведения о связанных внутренних устройствах Windows
В этой документации предполагается, что у вас есть некоторые знания о основных внутренних компонентах Windows. Чтобы узнать больше о внутренних компонентах Windows, включая использование памяти, контекст, потоки и процессы, вы можете просмотреть такие ресурсы, как Внутренние компоненты Windows Павел Йосифович, Марк Э. Руссинович, Дэвид А. Соломон и Алекс Ионеску.
13. Просмотр дополнительных ресурсов отладки
Другие ресурсы включают следующие книги и видео:
- В отладке Windows: практические стратегии отладки и трассировки с помощью Tarik Soulami
- Расширенная отладка Windows Марио Hewardt и Даниэль Прават
- Видео дефрагментации инструментов, эпизоды 13–29, все о WinDbg
См. также
- Начало работы с WinDbg (режим ядра)
- Начало работы с WinDbg (режим пользователя)
- Выберите 32-разрядные или 64-разрядные средства отладки
- Среды отладки
- Настройка отладки (режим ядра и режим пользователя)
- Отладка универсальных драйверов — пошаговые лаборатории (режим эхо-ядра)
- Драйверы отладки — пошаговые лаборатории (режим ядра Sysvad)