Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Разработчики) | Microsoft |
---|---|
Стабильный выпуск | 10.0.20153.1000 / 29 апреля 2020 г. |
Операционная система | Майкрософт Виндоус |
Тип | Отладчик |
Лицензия | Коммерческий |
Веб-сайт | Инструменты отладки на docs.microsoft.com |
WinDbg - это многоцелевой отладчик для компьютерной операционной системы Microsoft Windows , распространяемый Microsoft. [1] Отладка - это процесс поиска и устранения ошибок в системе ; в вычислениях это также включает изучение внутренней работы программного обеспечения как помощь в разработке. Его можно использовать для отладки приложений пользовательского режима , драйверов устройств и самой операционной системы в режиме ядра . Как и более известный отладчик Visual Studio Debugger, он имеет графический пользовательский интерфейс. (GUI), но он более мощный и имеет мало общего.
WinDbg можно использовать для отладки дампов памяти в режиме ядра , созданных после того, что обычно называется « синим экраном смерти», возникающим при проверке ошибок . [2] Его также можно использовать для отладки аварийных дампов в пользовательском режиме. Это известно как посмертная отладка . [3]
WinDbg может автоматически загружать файлы отладочных символов (например, файлы PDB ) с сервера, сопоставляя различные критерии (например, временная метка, CRC, однопроцессорная или многопроцессорная версия) через SymSrv (SymSrv.dll) [4] вместо более трудоемкого задача создания дерева символов для целевой среды отладки. Если настроен частный сервер символов, символы могут быть соотнесены с исходным кодом.для двоичного файла. Это облегчает бремя проблем отладки, когда на целевом объекте отладки установлены различные версии двоичных файлов, устраняя необходимость поиска и установки определенной версии символов на узле отладки. У Microsoft есть общедоступный сервер символов, на котором есть большинство общедоступных символов для Windows 2000 и более поздних версий Windows (включая пакеты обновления ). [5]
Последние версии WinDbg распространялись и распространяются как часть бесплатного набора инструментов отладки для Windows , который имеет общий сервер отладки между WinDbg и интерфейсами отладчика командной строки, такими как KD , CDB и NTSD . Большинство команд можно использовать как есть со всеми включенными интерфейсами отладчика.
Стоит отметить, что в 2017 году Microsoft анонсировала новую версию WinDbg под названием WinDbg Preview (также известную как WinDbgX). [6] Одна из наиболее заметных особенностей WinDbg Preview - это так называемая отладка с перемещением во времени (TTD). [7] Основная идея здесь заключается в том, что вы можете записать реальный живой процесс (со снижением производительности) для последующей отладки, перемещаясь туда и обратно во времени. Эта функция особенно полезна в процессе обратного проектирования. Он также позволяет писать сценарии на языке JavaScript. [8]
Расширения [ править ]
WinDbg позволяет загружать библиотеки DLL расширений [9], которые могут дополнять поддерживаемые отладчиком команды и обеспечивать помощь в отладке определенных сценариев: например, отображение документа MSXML с использованием IXMLDOMDocument или отладка Common Language Runtime (CLR) . [10] Эти расширения составляют большую часть того, что делает WinDbg таким мощным отладчиком. WinDbg используется командой разработчиков Microsoft Windows для создания Windows, и все необходимое для отладки Windows включено в эти библиотеки DLL расширения.
Команды расширения всегда имеют префикс ! .
Хотя некоторые расширения используются только внутри Microsoft, большинство из них являются частью общедоступного пакета Debugging Tools for Windows.
Модель расширения задокументирована в файле справки, входящем в состав средств отладки для Windows.
Ext.dll [ править ]
Ext - это стандартное расширение Windows Debugger, которое поставляется с WinDBG и загружается по умолчанию.
! Команда анализа [ править ]
Чаще всего используется команда ! Analysis -v , [11], которая анализирует текущее состояние отлаживаемой программы и состояние машины / процесса на момент сбоя или зависания. Эта команда часто может отлаживать текущую проблему полностью автоматически.
При использовании без переключателей ! Analysis просто возвращает результаты своего анализа. В -v и - дают дополнительные сведения о том , что анализе.
Wow6432exts.dll [ править ]
Wow6432exts - это стандартное расширение отладчика Windows, которое поставляется с WinDBG. Он используется для отладки процессов, запущенных внутри WoW64 (32-битные процессы, работающие в 64-битной Windows). [12]
SOS.dll [ править ]
SOS (Son of Strike) [13] Расширение отладки (SOS.dll) помогает в отладке управляемых программ в Visual Studio и WinDbg, предоставляя информацию о внутренней среде CLR. Этот инструмент требует, чтобы в проекте была включена неуправляемая отладка. SOS.dll автоматически устанавливается вместе с .NET Framework. Чтобы использовать SOS.dll в Visual Studio, установите Windows Driver Kit (WDK). [14] Для отладки процесса или дампа памяти версия sos.dll должна соответствовать версии .NET Framework. Psscor2 и Psscor4 - это надмножество SOS.
Psscor2.dll [ править ]
Psscor2 - это расширение отладчика Windows, используемое для отладки приложений .NET Framework, использующих .NET CLR версии 2.0 (.NET Framework версий 2–3.5). Psscor2 был разработан для внутреннего использования в Microsoft как часть инструментов службы поддержки продуктов. [15] В то время как Microsoft выпустила Psscor2 только в 2010 году [16] Microsoft публиковала команды из расширения за несколько лет до этого, [17] создавая трудности для тех, кто пытался следовать их процессам.
Psscor4.dll [ править ]
Psscor4 - это расширение отладчика Windows, используемое для отладки приложений .NET Framework 4.
Связь с виртуальными машинами [ править ]
WinDbg позволяет отлаживать ядро Microsoft Windows, работающее на виртуальной машине, с помощью VMware , VPC или Parallels, используя именованный канал . Этого можно добиться с помощью виртуального COM-порта . В случае VMware и VirtualBox расширение VirtualKD добавляет встроенную поддержку отладки виртуальных машин в ядро Windows, утверждая, что ускоряет отладку до 45 раз. [18] Для Windows 8 и более поздних версий разрешена отладка ядра по сети, [19], позволяющий выполнять быструю отладку ядра без специальной настройки.
Протокол [ править ]
Протокол WinDbg не документирован, но поддерживается дизассемблерами IDA Pro и radare2 .
См. Также [ править ]
- ProcDump
- Microsoft Detours
Ссылки [ править ]
- ^ Элиот Сиэтл. «Загрузите комплект драйверов для Windows (WDK)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ "Как мне использовать отладчик WinDBG для устранения синего экрана смерти?" . TechRepublic . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Посмертная отладка приложений .NET с помощью WinDbg» . Tewarid.github.io . 10 сентября 2010 . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Отладка с помощью символов (Windows)» . Support.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ ДОМАРС. «Сервер общедоступных символов Microsoft» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Новый WinDbg доступен в предварительной версии! - Инструменты отладки для Windows» . blogs.msdn.microsoft.com . Проверено 13 августа 2019 .
- ^ «Использование нового WinDbgX и Time-Travel-Trace –Script для вывода списка всех видов доступа к файлам - Блог Родни Вианы (MSFT)» . blogs.msdn.microsoft.com . Проверено 13 августа 2019 .
- ^ «Упрощение сценариев WinDbg с Javascript для исследования вредоносных программ - Avar 2018» . Проверено 13 августа 2019 .
- ^ ДОМАРС. ".load, .loadby (загрузка DLL расширения)" . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Проблемы журнала MSDN» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ ДОМАРС. «анализировать» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Отладка WOW64 (Windows)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Отладка SOS CLR, часть 1» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ майрав. «SOS.dll (расширение отладки SOS)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Новое расширение отладчика для .NET (PSSCOR2)» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Выпущено новое расширение отладчика для .NET, Psscor2» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Проблемы журнала MSDN» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ «VirtualKD - усилитель отладчика ядра Windows для виртуальных машин» . Virtualkd.sysprogs.org . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
- ^ ДОМАРС. «Настройка отладки в режиме ядра вручную по сетевому кабелю» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
Внешние ссылки [ править ]
- Начало работы: инструкции по установке , часть 1 , часть 2
- Инструменты отладки для Windows - информация и бесплатные загрузки
- WinDbg. От А до Я! - Теория и примеры, 111 слайдов
- Общие команды WinDbg (тематически сгруппированные)
- Учебник по устранению сбоев системы с помощью WinDbg
- Загрузка символов в WinDbg
- Отладчики Windows: Часть 1: Учебное пособие по WinDbg
- Расширение KD для быстрой отладки VMware и VirtualBox
- Расширение отладки SOS (SOS.dll)
- psscor4 (.NET 4.0) или psscor2 (.NET 2.0-3.5) Замена для SOS с расширенным набором команд
- [1] WinDBG v6.12.2.633 доступен через Windows Driver Kit версии 7.1.0.
- Расширение для скриптов Python (pykd)
- DbgKit: первое расширение графического интерфейса для инструментов отладки для Windows