Инструменты отладки для Windows, как использовать
Обновлено: 03.07.2024
Инструменты отладки для Windows включают несколько инструментов в дополнение к механизму отладки и средам отладки. Эти инструменты находятся в каталоге установки Debugging Tools for Windows.
DumpChk
Проверить файл дампа памяти.
GFlags
Управление ключами реестра и другими настройками.
Убить
Завершить процесс.
Logger и LogViewer
Запись и отображение вызовов функций и других действий программы.
PLMDebug
Используйте отладчик Windows для отладки приложений Windows, которые выполняются в рамках управления жизненным циклом процессов (PLM). С помощью PLMDebug вы можете вручную управлять приостановкой, возобновлением и завершением работы приложения Windows.
Remote Tool
Удаленное управление любой консольной программой, включая KD, CDB и NTSD. См. Удаленная отладка с помощью Remote.exe.
TList
Список всех запущенных процессов.
UMDH
Анализ распределения кучи.
USBView
Отображение хост-контроллеров USB и подключенных устройств.
DbgRpc (Dbgrpc.exe)
Отображение информации о состоянии удаленного вызова процедур Microsoft (RPC). См. раздел Отладка RPC и использование средства DbgRpc.
KDbgCtrl (управление отладкой ядра, Kdbgctrl.exe)
Управление и настройка соединения для отладки ядра. См. Использование KDbgCtrl.
SrcSrv
Исходный сервер, который можно использовать для доставки исходных файлов во время отладки.
SymSrv
Сервер символов, который отладчик может использовать для подключения к хранилищу символов. Сведения о работе с сервером символов см. в разделе Общедоступные символы Microsoft.
SymChk
Сравните исполняемые файлы с файлами символов, чтобы убедиться, что доступны правильные символы.
AgeStore
Удаляет старые записи в нижестоящем хранилище сервера символов или исходного сервера.
DBH
Отображение информации о содержимом файла символов.
PDBCopy
Удаление информации о частных символах из файла символов и управление включением общедоступных символов в файл.
DbgSrv
Сервер процессов, используемый для удаленной отладки. См. Серверы обработки (режим пользователя).
KdSrv
Сервер соединений KD, используемый для удаленной отладки. См. Серверы соединений KD (режим ядра).
DbEngPrx
Ретранслятор (небольшой прокси-сервер), используемый для удаленной отладки. См. Ретрансляторы.
Breakin (Breakin.exe)
Вызывает прерывание пользовательского режима в процессе. Для получения справки откройте окно командной строки, перейдите в каталог установки и введите breakin /?.
List (утилита списка файлов) (List.exe)
Для справки откройте окно командной строки, перейдите в каталог установки и введите list /?.
RTList (Просмотр удаленного списка задач) (Rtlist.exe)
Список запущенных процессов через сервер процессов DbgSrv. Для получения справки откройте окно командной строки, перейдите в каталог установки и введите rtlist /?.
Каталог установки
Каталог установки по умолчанию для 64-разрядной ОС для инструментов отладки — C:\Program Files (x86)\Windows Kits\10\Debuggers\. Если у вас 32-разрядная ОС, вы можете найти папку Windows Kits в папке C:\Program Files. Чтобы определить, следует ли использовать 32-разрядные или 64-разрядные инструменты, см. раздел Выбор 32-разрядных или 64-разрядных инструментов отладки.
WinDbg — это отладчик режима ядра и режима пользователя, входящий в состав средств отладки для Windows. Здесь мы предлагаем практические упражнения, которые помогут вам начать использовать WinDbg в качестве отладчика пользовательского режима.
Информацию о том, как получить средства отладки для Windows, см. в разделе Средства отладки для Windows (WinDbg, KD, CDB, NTSD).
После установки инструментов отладки найдите каталоги установки 64-разрядной (x64) и 32-разрядной (x86) версий инструментов. Например:
- C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
- C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
Запустите Блокнот и подключите WinDbg
Перейдите в каталог установки и откройте WinDbg.exe.
В меню "Файл" выберите "Открыть исполняемый файл". В диалоговом окне «Открыть исполняемый файл» перейдите к папке, содержащей notepad.exe (обычно это C:\Windows\System32). В поле Имя файла введите notepad.exe. Выберите Открыть.
В окне WinDbg, слева от командной строки, обратите внимание на номера процессора и потока. В этом примере номер текущего процессора равен 0, а номер текущего потока — 11. Итак, мы смотрим на трассировку стека для потока 11 (который работает на процессоре 0).
Чтобы увидеть список всех потоков в процессе Блокнота, введите эту команду (тильда):
Выход примерно такой:
В этом примере имеется 14 потоков с индексами от 0 до 13.
Чтобы просмотреть трассировку стека для потока 0, введите следующие команды:
Выход примерно такой:
Чтобы выйти из режима отладки и отключиться от процесса Блокнота, введите следующую команду:
Запустите собственное приложение и подключите WinDbg
Предположим, вы написали и создали небольшое консольное приложение.
В этом упражнении предполагается, что созданное приложение (MyApp.exe) и файл символов (MyApp.pdb) находятся в папке C:\MyApp\x64\Debug. Мы также предполагаем, что исходный код приложения находится в C:\MyApp\MyApp и что MyApp.exe скомпилирован на целевой машине.
В меню "Файл" выберите "Открыть исполняемый файл". В диалоговом окне «Открыть исполняемый файл» перейдите в папку C:\MyApp\x64\Debug. В поле Имя файла введите MyApp.exe. Выберите Открыть.
Введите эти команды:
Теперь WinDbg знает, где найти символы и исходный код для вашего приложения. В этом случае местоположение исходного кода не нужно задавать с помощью .srcpath, поскольку символы имеют полные пути к исходным файлам.
Введите эти команды:
Ваше приложение прерывает работу отладчика, когда дело доходит до его основной функции.
WinDbg отображает ваш исходный код и командное окно.
В меню "Отладка" выберите "Пошаговое выполнение" (или нажмите F11). Продолжайте шагать, пока не войдете в MyFunction. Когда вы перейдете к строке y = x/p2 , ваше приложение рухнет и ворвется в отладчик. Вывод примерно такой:
Начните с обзора средств отладки для Windows. Этот набор инструментов включает WinDbg и другие отладчики.
Установить средства отладки для Windows
Вы можете получить средства отладки для Windows как часть комплекта разработки или как отдельный набор инструментов:
Как часть WDK
Инструменты отладки для Windows включены в комплект драйверов Windows (WDK). Чтобы получить WDK, см. Загрузка комплекта драйверов для Windows (WDK).
Как часть Windows SDK
Инструменты отладки для Windows включены в пакет разработки программного обеспечения Windows (SDK). Чтобы загрузить установщик или образ ISO, см. Windows SDK в Центре разработки для Windows.
Как отдельный набор инструментов
Вы можете установить только средства отладки для Windows, без Windows SDK или WDK, запустив установку Windows SDK, а затем выбрав в списке компонентов для установки только средства отладки для Windows (и сняв выделение со всех остальных компонентов). Особенности). Чтобы загрузить установщик или образ ISO, см. Windows SDK в Центре разработки для Windows.
Начало работы с отладкой Windows
Чтобы начать работу с отладкой Windows, см. раздел Начало работы с отладкой Windows.
Чтобы приступить к отладке драйверов режима ядра, см. раздел Отладка универсальных драйверов — пошаговая лабораторная работа (Echo Kernel-Mode). Это пошаговое практическое занятие, в котором показано, как использовать WinDbg для отладки Echo — примера драйвера, использующего платформу драйверов режима ядра (KMDF).
Среды отладки
Если на вашем компьютере установлены Visual Studio и WDK, у вас есть шесть доступных сред отладки. Описание этих сред см. в разделе Среды отладки.
Все эти среды отладки предоставляют пользовательские интерфейсы для одного и того же механизма отладки, реализованного в механизме символического отладчика Windows (Dbgeng.dll). Этот механизм отладки также называется отладчиком Windows, а шесть сред отладки вместе называются отладчиками Windows.
Отладчики Windows
Отладчики Windows могут работать на процессорах x86, x64 или ARM, а также отлаживать код, работающий на тех же архитектурах. Иногда отладчик и отлаживаемый код выполняются на одном компьютере, но иногда отладчик и отлаживаемый код выполняются на разных компьютерах. В любом случае компьютер, на котором работает отладчик, называется главным компьютером, а отлаживаемый компьютер называется целевым компьютером. Отладчики Windows поддерживают следующие версии Windows как для хоста, так и для целевых компьютеров.
- Windows 11 и Windows Server 2022
- Windows 10 и Windows Server 2016
- Windows 8.1 и Windows Server 2012 R2
- Windows 8 и Windows Server 2012
Символы и файлы символов
В файлах символов хранятся различные данные, которые не требуются при запуске исполняемых двоичных файлов, но файлы символов очень полезны при отладке кода. Дополнительные сведения о создании и использовании файлов символов см. в разделе Символы для отладки Windows (WinDbg, KD, CDB, NTSD).
Синие экраны и файлы аварийного дампа
Если Windows перестает работать и отображает синий экран, компьютер был внезапно выключен, чтобы защитить себя от потери данных, и отображает код проверки на наличие ошибок. Дополнительные сведения см. в разделе Проверка ошибок (синие экраны). Вы анализируете файлы аварийного дампа, которые создаются при завершении работы Windows, с помощью WinDbg и других отладчиков Windows. Дополнительные сведения см. в разделе Анализ аварийного дампа с помощью отладчиков Windows (WinDbg).
Инструменты и утилиты
В дополнение к отладчикам средства отладки для Windows включают набор инструментов, полезных для отладки. Полный список инструментов см. в разделе Инструменты, входящие в состав средств отладки для Windows.
Дополнительная документация
Дополнительную информацию об инструментах отладки для Windows см. в разделе Ресурсы по отладке. Дополнительные сведения о новых возможностях отладчика см. в разделе Предварительный просмотр WinDbg — что нового.
В этой статье рассказывается, как начать работу с отладкой Windows. Если вы хотите использовать отладчик для анализа аварийного дампа, см. раздел Анализ файлов аварийного дампа с помощью WinDbg.
Чтобы начать работу с отладкой Windows, выполните задачи, описанные в этой статье.
1. Определите хост и цель
Отладчик работает в хост-системе, а код, который нужно отладить, выполняется в целевой-системе.
Цель хоста
Рабочая станция Lanman Windows 7 отсутствует