Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 или отладка среды 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

Ссылки [ править ]

  1. ^ Элиот Сиэтл. «Загрузите комплект драйверов для Windows (WDK)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  2. ^ «Как мне использовать WinDBG Debugger для устранения синего экрана смерти?» . TechRepublic . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  3. ^ «Посмертная отладка приложений .NET с помощью WinDbg» . Tewarid.github.io . 10 сентября 2010 . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  4. ^ «Отладка с помощью символов (Windows)» . Support.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  5. ^ ДОМАРС. «Сервер общедоступных символов Microsoft» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  6. ^ «Новый WinDbg доступен в предварительной версии! - Инструменты отладки для Windows» . blogs.msdn.microsoft.com . Проверено 13 августа 2019 .
  7. ^ «Использование нового WinDbgX и Time-Travel-Trace –Script для вывода списка всех видов доступа к файлам - Блог Родни Вианы (MSFT)» . blogs.msdn.microsoft.com . Проверено 13 августа 2019 .
  8. ^ «Упрощение сценариев WinDbg с Javascript для исследования вредоносных программ - Avar 2018» . Проверено 13 августа 2019 .
  9. ^ ДОМАРС. ".load, .loadby (загрузка DLL расширения)" . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  10. ^ «Проблемы журнала MSDN» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  11. ^ ДОМАРС. «анализировать» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  12. ^ «Отладка WOW64 (Windows)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  13. ^ «Отладка SOS CLR, часть 1» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  14. ^ майрав. «SOS.dll (расширение отладки SOS)» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  15. ^ «Новое расширение отладчика для .NET (PSSCOR2)» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  16. ^ «Выпущено новое расширение отладчика для .NET, Psscor2» . Blogs.msdn.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  17. ^ «Проблемы журнала MSDN» . Msdn.microsoft.com . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  18. ^ «VirtualKD - усилитель отладчика ядра Windows для виртуальных машин» . Virtualkd.sysprogs.org . Проверено 23 апреля 2018 года . CS1 maint: обескураженный параметр ( ссылка )
  19. ^ ДОМАРС. «Настройка отладки в режиме ядра вручную по сетевому кабелю» . 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