- Установка и настройка WinDBG для анализа дампов памяти
- Содержание
- Шаг 1 — Настройка записи малых дампов памяти
- Шаг 2 – Установка WinDBG
- Шаг 3 – Сопоставление файлов .dmp с WinDBG
- Шаг 4 – Настройка сервера символов для получения файлов символов отладки
- Как установить и настроить WinDBG для анализа BSOD
- Загрузка и установка WinDBG
- Ассоциированние .dmp файлов с WinDBG
- Записки программиста
- Основы использования отладчика WinDbg
Установка и настройка WinDBG для анализа дампов памяти
Посетителей: 17255 | Просмотров: 22512 (сегодня 0)
Содержание
Для выявления причин возникновения синих экранов (BSOD) требуется произвести анализ дампа памяти. В подавляющем большинстве случаев достаточно минидампа, который создается системой при критических ошибках.
В этой статье содержится пошаговая инструкция по установке и настройке WinDBG – мощного средства отладки, позволяющего выявить истинную причину возникновения BSOD.
Шаг 1 — Настройка записи малых дампов памяти
- Откройте Панель управления – Система и безопасность – Система
- Нажмите слева ссылку Дополнительные параметры системы
- Нажмите кнопку Параметры в блоке Загрузка и восстановление
- В открывшемся окне настроек отключите автоматическую перезагрузку при отказе системы и выберите запись отладочной информации в Малый дамп памяти (256 KB)
Увеличить рисунок
Шаг 2 – Установка WinDBG
Для проведения анализа дампов памяти вам понадобится установить отладчик WinDBG, который входит в состав пакета Windows SDK. На момент написания статьи последние доступные версии Windows SDK:
- Пакет SDK для Windows 10 (скачать сетевой установщик)
- Пакет SDK для Windows 8.1 (скачать сетевой установщик)
- Скачайте необходимый вам пакет и запустите его установку
- На первом шаге мастера установки выберите вариант установки на этот компьютер
Увеличить рисунок
На следующем этапе мастера установки выберите установку только Debugging Tools for Windows
Увеличить рисунок - Дождитесь завершения установки
Шаг 3 – Сопоставление файлов .dmp с WinDBG
Для упрощения процедуры чтения и анализа дампов памяти выполните сопоставление файлов .dmp с WinDBG. Это позволит открывать файлы дампов из проводника сразу в WinDBG минуя его предварительный запуск.
- Откройте в проводнике папку C:\ProgramFiles (x86)\WindowsKits\8.1\Debuggers\x64\ если вы работаете в 64-разрядной версии ОС. Или C:\Program Files\Windows Kits\8.1\Debuggers\x86\ для 32-разрядной.
- На ленте проводника или в меню выберите Файл, наведите курсор мыши на пункт Открыть командную строку и в появившихся вариантах выберите Открыть командную строку как администратор
Выполните команду
В результате выполнения этой команды с WinDBG будут сопоставлены следующие типы файлов: .DMP, .HDMP, .MDMP, .KDMP и .WEW.
Шаг 4 – Настройка сервера символов для получения файлов символов отладки
- Откройте WinDBG: Пуск – Все приложения — Windows Kits — WinDBG (x64)
- Перейдите в меню File – Symbol File Path (или нажмите CTRL + S)
- Укажите путь к серверу для загрузки новых символов отладки и папку для сохранения кэша загруженных ранее символов для повторного их использования. И нажмите OK
SRV*D:\Symbols*http://msdl.microsoft.com/download/symbols
В данном примере кэш сохраняется в папку D:\Symbols, но вы можете указать и другой путь.
Установка и первичная настройка WinDBG завершена. Для того, чтобы изменить его внешний вид можете перейти в меню View — настройки шрифтов вы найдете выбрав пункт Font, а настройки окон консолей в Options.
Павел Кравченко занимается развитием компьютерного портала OSzone.net, объединяющего сайт, форум и каталог программного обеспечения. Он отвечает на вопросы участников форума OSZone с 2003 года, а на сайте публикует статьи о клиентских операционных системах Microsoft.
С 2006 года Павел ежегодно становится обладателем награды Наиболее ценный специалист Microsoft (MVP), присуждаемой за вклад в развитие технических сообществ.
Как установить и настроить WinDBG для анализа BSOD
Инструмент WinDBG от Майкрософт необходим для загрузки и анализа файлов .dmp, которые создаются когда возникает синий экран BSoD (сообщение о критической системной ошибке). Последняя версия WinDBG работает в Windows 10, Windows 8.x, Windows 7 и Windows Vista.
В этой статье рассмотри где скачать, как установить и настроить WinDBG.
Загрузка и установка WinDBG
1.Откройте страницу загрузки и нажмите левой клавишей мыши на “Скачать отдельный пакет SDK”;
2.Откройте скачанный файл sdksetup.exe;
3.Здесь вы можете выбрать место для установки или оставить его по умолчанию, нажмите Next;
4.Примите лицензионное соглашение, нажав на Accept;
5.Поставьте галочки в поля Debugging Tools for Windows и .Net.Framework 4.6.. …, после чего нажмите Install;
6.После завершения установки нужно нажать на Close.
Ассоциированние .dmp файлов с WinDBG
1.Откройте командную строку от имени администратора: один из способов, нажмите на меню “Пуск” правой клавишей мыши и выберите “Командная строка (администратор)”.
2.Если вы во время установки WinDBG не меняли путь установки, то скопируйте одну из ниже перечисленных команд и вставьте в командную строку. Если вы изменили путь установки – измените его в команде. В 32-х разрядной системе нужно написать команду cd\Program Files\Windows Kits\10\Debuggers\x86\ и нажать Enter. В 64х-разрядной системе нужно написать команду cd\Program Files (x86)\Windows Kits\10\Debuggers\x64\ и нажать Enter. Если вы не знаете разрядность вашей системы – читайте статью 32-разрядная или 64-разрядная Windows?.
3.Теперь в командной строке нужно написать команду windbg.exe -IA и нажать Enter.
Если команду вы написали без ошибок, то в результате появится окно подтверждение (смотрите рисунок), нажмите “ОК”. Окно командной строки можете закрывать.
Настроить путь к символам.
WinDBG ищет символы каждый раз , когда он читает двоичный файл в файле .dmp BSOD, и нам нужно указать где ему их искать.
1.Откройте WinDBG: зайдите в меню “Пуск” => Все приложения => Windows Kits => WinDBG (x86).
2.В открывшемся окне зайдите в File => Symbol File Path.
3. Вставьте следующую строку SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols и нажмите “ОК”.
Что данная строка означает: создается папка с именем C: \ SymCache и в нее загружаются новые символы с сайта MSDL.
4. Открой File => Save Workspace. Закройте WinDBG.
На сегодня всё, если у вас есть дополнения – пишите комментарии! Удачи Вам 🙂
Записки программиста
Основы использования отладчика WinDbg
22 декабря 2015
Поговорим об отладчиках для Microsoft Windows. Их существует довольно много, вспомнить хотя бы всеми любимый OllyDbg, некогда популярный, но в настоящее время практически умерший SoftIce, а также Sycer, Immunity Debugger, x64dbg и бесчисленное количество отладчиков, встроенных в IDE. По моим наблюдениям, WinDbg нравится далеко не всем. Думаю, в основном это связано с командным интерфейсом отладчика. Любителям Linux и FreeBSD, бесспорно, он пришелся бы по душе. Но закоренелым пользователям Windows он кажется странным и неудобным. А тем временем, по функционалу WinDbg ничем не уступает другим отладчикам. Как минимум, он точно нечем не хуже классического GDB или там LLDB. В чем мы сегодня с вами и убедимся.
В мире Windows, все, как обычно, немного через жопу. Официальный инсталятор WinDbg можно скачать на сайте MS. Инсталятор этот помимо WinDbg также поставит вам свежую версию .NET Framework и перезагрузит систему без спроса. После установки не факт, что отладчик вообще заработает, особенно под старыми версиями Windows. Поэтому лучше скачать неофициальную сборку WinDbg здесь или здесь. Настоятельно советую воспользоваться именно одной из этих версий — это самый простой и быстрый способ установить WinDbg.
Есть две версии WinDbg, x86 и x64. Чтобы не возникало никаких проблем, отлаживайте x86 приложения с помощью x86 дебагера, а x64 приложения — с помощью x64 дебагера. После первого запуска выглядеть WinDbg будет довольно убого. Но не беспокойтесь по этому поводу. Поработав буквально несколько минут с WinDbg, вы подстроите его под себя и выглядеть он будет вполне няшненько. Например, как-то так (кликабельно, 51 Кб, 1156 x 785):
На этом скриншоте изображена отладка программы из заметки Получаем список запущенных процессов на Windows API. Как видите, WinDbg подцепил исходники программы. Справа отображаются значения локальных переменных. Внизу находится окно для ввода команд, где при помощи команды kn был выведен стэк вызовов. В верхней части отладчика находятся кнопки, при помощи которых можно выполнять простые действия вроде «шаг вперед», а также открыть дополнительные окна. При помощи этих окон можно посмотреть содержимое оперативной памяти, значения регистров, дизассемблерный листинг программы и много других интересных вещей.
Вообще, очень многое в WinDbg можно делать через GUI. Например, в окне с исходным кодом можно поставить курсор на нужном месте и нажатием на икноку с ладонью создать там точку останова. Или выполнить run to cursor. Также выполнение команды можно в любой момент остановить при помощи кнопки Break в панели вверху. На этом всем подробно останавливаться не будем. Но учтите, что такие возможности есть и они заслуживают изучения!
Прежде, чем приступить к отладке при помощи WinDbg, нужно сделать несколько несложных телодвижений. Откройте File → Symbol File Path и введите:
Затем нажмите Browse и укажите путь до файлов c отладочной информацией (.pdb) вашего проекта. Аналогичным образом в File → Source File Path укажите путь до каталога с исходниками. Если сомневаетесь, укажите путь, по которому находится файл проекта Visual Studio, не ошибетесь. Затем скажите File → Save Workspace, чтобы все эти пути не приходилось указывать заново при каждом запуске WinDbg.
Теперь, когда все настроено, есть несколько способов начать отладку. Можно запустить новый процесс под отладчиком, можно подключиться к уже существующему, можно открыть крэшдамп. Все это делается через меню File. Особого внимания заслуживает возможность удаленной отладки. Например, если при помощи WinDbg вы отлаживаете драйверы, то особого выбора, кроме как использовать удаленную отладку, у вас как бы и нет. Что не удивительно, ведь малейшая ошибка в коде драйвера может привести к BSOD.
Если вы уже отлаживаете процесс, но хотели бы начать делать это удаленно, говорим:
Нужно проверить, что порт открыт, что особенно актуально на Windows Server. На клиенте делаем File → Connect to a Remote Session, вводим:
Кроме того, можно запустить сервер, позволяющий отлаживать любой процесс в системе:
На клиенте подключаемся через File → Connect to Remote Stub. После этого через интерфейс можно как обычно выбрать процесс из списка или запустить новый. Только работать процессы будут на удаленной машине.
Теперь, наконец-то, рассмотрим основные команды WinDbg.
Важно! Иногда команды могут выполняется очень долго, например, если вы решили загрузить сразу все отладочные символы. Если устанете ждать, просто нажмите Ctr+C в поле ввода команды, и WinDbg тут же перестанет делать то, что он сейчас делает.
Очистить вывод в окне Command:
Добавить путь, по которому WinDbg будет искать отладочные символы (та же команда без знака плюс затрет все ранее прописанные пути):