- Файл дампа. Два способа анализа дампа памяти.
- Что нужно знать, про файл дампа?
- Анализ дамп файла с помощью Microsoft Kernel Debugger.
- Анализ файла дампа с BlueScreenView
- Как провести анализ файла дампа с BlueScreenView?
- Открываем дампы памяти DMP
- Варианты открытия DMP
- Способ 1: BlueScreenView
- Способ 2: Microsoft Debugging Tools for Windows
- Заключение
- Как прочитать аварийный дамп памяти Windows (MEMORY.DMP)?
- Установка утилиты Debugging Tools for Windows из набора Software Development Kit (SDK)
- Чем открыть файл дампа памяти Windows MEMORY.DMP
- Просмотр и анализ файла минидампа.
- Просмотр полного дампа памяти MEMORY.DMP.
- Установка и настройка WinDBG.
- Просмотр и анализ файла MEMORY.DMP.
Файл дампа. Два способа анализа дампа памяти.
Чтобы исправить синий экран смерти необходимо выявить причину его появления. Для этого нужно проанализировать аварийный файл дампа памяти. Анализ аварийного дампа можно провести различными способами. Об этом как раз и поговорим в этой статье.
Что нужно знать, про файл дампа?
В предыдущей статье на сайте мы уже писали про причины, которые чаще всего приводят к синему экрану смерти. Также показали как правильно настроить создание аварийных дампов памяти и рассказали где хранится этот самый файл дампа. Мельком коснулись того, что по стоп коду и по информации из дамп файла можно путём анализа точнее выяснить причину приведшую к BSOD.
Осталось узнать как и с помощью чего можно проанализировать информацию из дамп файла. Рассмотрим несколько способов, включающих как инструмент анализа от самих разработчиков Windows так и сторонние инструменты.
Анализ дамп файла с помощью Microsoft Kernel Debugger.
Microsoft Kernel Debugger — специальная утилита для анализа крэш дампов. Скачать саму утилиту, а также необходимые для её работы компоненты можно с сайта Microsoft — Debugging tools. Версия пакета Debugging Tools for Windows должна соответствовать разрядности операционной системы. Подробно про то где и как скачать эту утилиту писал тут.
Вместе с самим отладчиком необходимо ещё скачать набор отладочных символов — Debugging Symbols . Набор символов, также различается для каждой версии Windows, включая и по разрядности. Таким образом, для 32-х разрядной Windows 7 необходимо скачать пакет символов Windows 7 x32, а для 64-х битной Windows 7 набор символов Windows 7 x64. Таким же образом нужно выбирать набор символов и для других версий Windows (widows 10, XP и т.д.). Нужный набор символов также можно скачать в самом отладчике, но об этом ниже.
После установки утилиты и набора отладочных символов, можно запустить сам отладчик. После запуска необходимо в его настройках указать ему путь до отладочных символов. Для этого:
Нажмите на кнопку File ⇒ Symbol File Path.
Далее нажмите кнопку Browse и укажите папку куда сохранили набор символов.
Скачать самую новую версию символов можно с помощью самой утилиты. Для этого в поле File ⇒ Symbol File Path. введите:
SRV*C:\symbols*http://msdl.microsoft.com/download/symbols
Далее нажмите на File ⇒ Save workspace и затем нажмите на ОК.
Таким образом утилита запросит информацию об отладочных символах через интернет напрямую с сервера Microsoft .
Для того, чтобы приступить к анализу нажмите на File > Open Crash Dump… и укажите требуемый файл дампа памяти (малый дамп памяти).
Система проведёт анализ дампа и по результатам выдаст возможную причину ошибки.
Кликнув по гиперссылке !analyse-v откроется более расширенная информация по ошибке.
Завершить отладку можно с помощью пункта меню Debug > Stop Debugging.
Анализ файла дампа с BlueScreenView
BlueScreenView это бесплатная утилита для анализа файла малого аварийного дампа памяти. Данная утилита имеет поддержку русского языка. Основным плюсом данной программы является то, что для её работы не нужно скачивать отладочные символы. Это делает эту утилиту полностью автономной и независимой. Еще одним плюсом данной программы является наличие портабельной версии, то есть версии, которую не нужно устанавливать в систему. Автором программы является Nier Sofer. Скачать можно с официального сайта автора . Портабельную версию программы можно скачать по ссылке на официальной странице, в названии которого, в скобках указано in Zip file. При скачивании важно учитывать разрядность вашей ОС.
Пролистав чуть ниже можно скачать файл русификации — BlueScreenView_lng.ini , который нужно просто закинуть в папку с самой программой. Я подготовил для скачивания программу с уже настроенным языком. Вот прямые ссылки:
А теперь непосредственно про процедуру анализа.
Как провести анализ файла дампа с BlueScreenView?
После запуска программа сразу сканирует стандартную директорию хранения файла дампа — %SystemRoot%\Minidump . Директорию можно изменить в дополнительных параметрах программы. Интерфейс окна программы условно можно поделить на 3 области:
- Верхняя область кнопок меню
- Средняя область со списком файлов дампов
- Нижняя область со списком драйверов
Данные анализа выводятся в табличном виде. Перечислю наиболее важные из столбцов средней области интерфейсного окна программы (в скобках наименование из англ. версии):
- Текст ошибки (Bug Check String). Здесь выводится описание ошибки согласно классификации MicroSoft. В нашем примере это DRIVER_IRQL_NOT_LESS_OR_EQUAL .
- Код ошибки (Bug Check Code). Выводится СТОП-код ошибки — 0x000000d1
- Драйвер причины (Caused By Driver). Отображает наименование драйвера либо модуля, который вероятнее всего вызвал ошибку. Заметьте, это 100% виновник ошибки, а лишь вероятный. В нашем примере это E1G6032E.sys
- Адрес причины (Caused By Address). Отображает драйвер и сразу после адрес инструкций, вызвавших сбой. У нас это E1G6032E.sys+9ef530 /li>
- Адрес аварии (Crash Address). Адрес по которому случилась ошибка. В нашем случае ntoskrnl.exe+1509a0 .
Теперь перечислю наиболее важные столбцы из нижней области:
- Имя файла (File name). Указывается наименование драйвера либо модуля
- Адрес в стеке (Address In Stack). Выводится адрес памяти драйвера из стека памяти.
- Описание файла (File Description).
- Версия файла (File Version). Отображается версия файла драйвера.
Открываем дампы памяти DMP
Варианты открытия DMP
Расширение DMP зарезервировано за файлами дампов памяти: снимков состояния RAM в определённый момент работы системы или отдельного приложения, которые нужны разработчикам для последующей отладки. Такой формат используют сотни видов ПО, и рассмотреть их все в объёмах данной статьи невозможно. Наиболее же часто встречающийся тип DMP-документа – так называемый малый дамп памяти, где записаны подробности сбоя системы, который привёл к появлению синего экрана смерти, потому на нём и сосредоточимся.
Способ 1: BlueScreenView
Небольшая бесплатная утилита от разработчика-энтузиаста, основной функцией которой является предоставление возможности просмотра DMP-файлов. Не нуждается в установке на компьютер – достаточно распаковать архив в любое подходящее место.
- Для открытия отдельного файла нажмите на кнопку с иконкой программы на панели инструментов.
В окне «Advanced Options» отметьте чекбокс «Load a single Minidump File» и нажмите «Browse».
С помощью «Проводника» перейдите к папке с DMP-файлом, выделите его и нажмите «Открыть».
По возвращении в окно «Advanced Options» нажмите «ОК».
Утилита BlueScreenView рассчитана на продвинутых пользователей, потому её интерфейс может показаться сложным для новичка. Кроме того, доступна она только на английском языке.
Способ 2: Microsoft Debugging Tools for Windows
В составе среды разработки Windows SDK распространяется инструмент для отладки, который называется Debugging Tools for Windows. Приложение, рассчитанное на разработчиков, способно открывать в том числе и DMP-файлы.
- Для экономии места можно выбрать только Debugging Tools for Windows, отметив соответствующий пункт в процессе загрузки компонентов.
Запустить утилиту можно через «Пуск». Для этого откройте «Все программы», выберите «Windows Kits», а затем — «Debugging Tools for Windows».
Для запуска программы используйте ярлык «WinDbg».
Внимание! Для открытия DMP-файлов используйте только x64- или x86-версии дебаггера!
Утилита Debugging Tools for Windows ещё более сложная, чем BlueScreenView, и тоже не имеет русской локализации, однако предоставляет более подробную и точную информацию.
Заключение
Как видим, основную сложность при открытии DMP-файлов составляют сами программы, рассчитанные больше на специалистов, чем на рядовых пользователей.
Как прочитать аварийный дамп памяти Windows (MEMORY.DMP)?
В операционной системе Windows, при аварийном завершении работы ОС, автоматически создается аварийный дамп памяти, он сохраняется в системном каталоге Windows в файле MEMORY.DMP (%SystemRoot%\MEMORY.DMP). Этот файл помогает определить причину сбоя в работе операционной системы и определить процесс, ставшив возможной причиной остановки работы ОС. Файл дампа памяти может быть размером в несколько гигабайт, поэтому для его анализа требуется использование специальных инструментов.
В этой статье описываются шаги, которые следует предпринять для анализа файла аварийного дампа памяти MEMORY.DMP.
Чтобы прочитать файл MEMORY.DMP потребуется специальная утилита: Debugging Tools for Windows (WinDbg), которая входит в состав Windows 10 SDK, ее можно скачать по ссылке: Windows 10 SDK , как в виде инсталлятора, так и в виде ISO файла.
Установка утилиты Debugging Tools for Windows из набора Software Development Kit (SDK)
1. Запустить установочный файл на компьютере на котором будет проводиться анализ аварийного дампа памяти MEMORY.DMP
2. Выбрать путь установки и 2 раза нажать Next
3. Принять лицензионное соглашение
4. В окне выбора набора устанавливаемых утилит выбрать Debugging Tools for Windows (остальные пункты для анализа дампа памяти не понадобятся) и нажать Install
5. По завершении установки нажать CloseУтилита Debugging Tools for Windows установлена.
Чем открыть файл дампа памяти Windows MEMORY.DMP
Многие знакомы с «синим экраном смерти» или BlueScreen. Синий экран появляется когда в работе Windows возникает критическая ошибка, что приводит к остановке работы операционной системы. При этом операционная система создает дамп памяти, в который записывает отладочную информацию и добавляет запись в журнал событий.
В Windows существуют два типа дампа памяти — малый дамп (minidump) и полный дамп.
Minidump находится в директории C:\Windows\Minidump и его название имеет примерно такой вид Mini051819-01.dmp.
Полный дамп располагается в папке C:\Windows и называется MEMORY.DMP.
Просмотр и анализ файла минидампа.
Для просмотра и анализа файла минидампа можно воспользоваться достаточно простой и удобной утилитой BlueScreenView от Nirsoft, которую можно скачать с официального сайта https://www.nirsoft.net/utils/blue_screen_view.html .
Для просмотра минидампа достаточно перетащить файл в окно программы и тут же загрузится отладочная информация. Красным будут подсвечены модули вызвавшие ошибку. В случае представленном на скриншоте выше это был драйвер tcpip.sys.
Щелкнув по имени файла минидампа можно запустить поиск решения в Google.
Но эта программа не способна обработать полный дамп памяти Windows — memory.dmp.
Просмотр полного дампа памяти MEMORY.DMP.
Чтобы посмотреть содержимое полного дампа памяти необходимо открыть файл MEMORY.DMP при помощи утилиты WinDBG, которая входит в пакет Microsoft Windows SDK. Скачать эту утилиту можно с официального сайта Майкрософт по этой ссылке https://developer.microsoft.com/ru-ru/windows/downloads/windows-10-sdk .
Установка и настройка WinDBG.
Запускаем установку пакета Windows Software Development KIT и на этапе выбора компонентов отмечаем «Debugging Tools for Windows».
При первом запуске WinDBG необходимо выполнить настройку сервера отладочных символов.
1. Переходим в меню File > Symbol File Path и вставляем строку:
где C:\symbol_cache — это директория куда будут загружаться символы.
2. Сохраняем настройку File > Save Workspace.
Просмотр и анализ файла MEMORY.DMP.
Открываем файл MEMORY.DMP: File > Open Crash Dump. Начинается процесс загрузки отладочных символов, в этот момент внизу будет видна надпись: Debugee not connected.
По окончанию загрузки появится подсказка: «для анализа этого файла запустите !analize-v».
Щелкаем по надписи !analize-v и запускается анализ дампа. В этот момент в строке состояние будет надпись *BUSY*.
По завершении обработки файла дампа памяти Windows нам необходимо найти среди полученной информации модуль, который вызвал сбой в работе. Найти сбойный модуль можно в строках MODULE_NAME и IMAGE_NAME.
В моем случае произошел сбой в работе драйвера srv.sys. В строке MODULE_NAME имя представлено в виде ссылке, щелкнув по которому можно получить информацию о модуле.
После выявления драйвера послужившего причиной сбоя в работе Windows и появления «Синего экрана смерти» необходимо попытаться обновить его.
Большинство проблем с драйверами решаются их обновлением.