чем прочитать memory dmp
Чтение небольшого файла сброса памяти, созданного Windows при сбое
В этой статье описано, как изучить небольшой файл сброса памяти. Небольшой файл сброса памяти поможет определить причину сбоя компьютера.
Применяется к: Windows 10 — все выпуски, Windows Server 2012 R2
Исходный номер КБ: 315263
Если вы ищете сведения о отладки для Windows 8 или более поздней, проверьте средства отладки для Windows (WinDbg, KD, CDB, NTSD). Дополнительные сведения о небольшой свалке памяти вы можете получить в Small Memory Dump.
Небольшие файлы сброса памяти
Если компьютер сбои, как вы можете узнать, что произошло, устранить проблему и предотвратить ее снова? В этой ситуации может оказаться полезным небольшой файл сброса памяти. Небольшой файл сброса памяти содержит наименьшее количество полезных сведений, которые помогут определить причины сбоя компьютера. Файл сброса памяти содержит следующие сведения:
Для создания файла сброса памяти Windows файл paging на томе загрузки размером не менее 2 мегабайт (МБ). На компьютерах, на которых Windows Microsoft Windows 2000 или более поздней версии Windows, каждый раз при сбое компьютера создается новый файл сброса памяти. История этих файлов хранится в папке. Если возникает вторая проблема и если Windows создает второй небольшой файл сброса памяти, Windows сохраняет предыдущий файл. Windows каждому файлу предоставляется отдельное имя файла с кодированной датой. Например, Mini022900-01.dmp — это первый файл сброса памяти, созданный 29 февраля 2000 г. Windows сохраняет список всех небольших файлов сброса памяти в %SystemRoot%\Minidump папке.
Небольшой файл сброса памяти может быть полезен при ограниченном пространстве жесткого диска. Однако из-за ограниченной информации, которая включена, ошибки, которые не были непосредственно вызваны потоком, который был запущен во время проблемы, не могут быть обнаружены при анализе этого файла.
Настройка типа сброса
Чтобы настроить параметры запуска и восстановления для использования небольшого файла сброса памяти, выполните следующие действия.
Так как существует несколько версий microsoft Windows, на вашем компьютере могут быть другие действия. Если они есть, см. документацию по продуктам для выполнения этих действий.
Нажмите кнопку Пуск и выберите Панель управления.
Дважды щелкните систему, а затем нажмите параметры advanced system.
Щелкните вкладку Advanced, а затем нажмите Параметры в статье Startup and Recovery.
В списке сведений о отладке записи нажмите кнопку Малая свалка памяти (64k).
Чтобы изменить расположение папки для небольших файлов сброса памяти, введите новый путь в поле Dump File или в поле Каталог малых свалок в зависимости от версии Windows).
Средства для чтения небольшого файла сброса памяти
Используйте утилиту проверки сброса (Dumpchk.exe) для чтения файла сброса памяти или проверки правильности создания файла.
Утилита проверки сброса не требует доступа к отладке символов. В файлах символов находятся различные данные, которые на самом деле не нужны при запуске разных файлов, но которые могут быть очень полезны в процессе отладки.
Дополнительные сведения об использовании службы проверки сброса в Windows NT, Windows 2000, Windows Server 2003 или Windows Server 2008 см. в статье Microsoft Knowledge Base 156280: How to use Dumpchk.exe to check a memory dump file.
Или вы можете использовать средство Windows debugger (WinDbg.exe) или средство отладки ядра (KD.exe) для чтения небольших файлов сброса памяти. WinDbg и KD.exe включены в последнюю версию пакета средств отладки Windows.
Чтобы установить средства отладки, см. в странице Download and Install Debugging Tools for Windows webpage. Выберите типичную установку. По умолчанию установщик устанавливает средства отладки в следующей папке:
C:\Program Files\Debugging Tools for Windows
Эта веб-страница также предоставляет доступ к загружаемым пакетам символов для Windows. Дополнительные сведения о символах Windows см. в веб-странице Отладка с символами и веб Windows Пакеты символов.
Дополнительные сведения о параметрах файлов сброса в Windows см. в обзоре параметров файлов сброса памяти для Windows.
Откройте файл сброса
Чтобы открыть файл сброса после завершения установки, выполните следующие действия:
Нажмите кнопку Начните, нажмите кнопку Запустить, cmd введите, а затем нажмите кнопку ОК.
Изменение средств отладки для Windows папки. Для этого введите следующее в командной подсказке и нажмите кнопку ENTER:
Чтобы загрузить файл сброса в отладчик, введите одну из следующих команд и нажмите кнопку ENTER:
В следующей таблице объясняется использование держателей, используемых в этих командах.
Примеры команд
Чтобы открыть файл сброса, можно использовать следующие примеры команд. Эти команды предполагают следующие:
Пример 2. Если вместо командной строки вы предпочитаете графическую версию отладки, введите следующую команду:
Изучение файла сброса
Существует несколько команд, которые можно использовать для сбора сведений в файле сброса, в том числе следующие команды:
Справки по другим командам и полному синтаксису команд см. в документации по отладки средств справки. Документация о помощи средствам отладки можно найти в следующем расположении:
C:\Program Files\Debugging Tools for Windows\Debugger.chm
Если у вас есть проблемы, связанные с символами, используйте утилиту Symchk, чтобы убедиться, что правильные символы загружены правильно. Дополнительные сведения об использовании Symchk см. в рубрике Отладка с символами.
Упрощение команд с помощью пакетного файла
После определения команды, необходимой для загрузки свалок памяти, можно создать пакетный файл для проверки файла сброса. Например, создайте пакетный файл и назови его Dump.bat. Сохраните его в папке, где установлены средства отладки. Введите следующий текст в пакетный файл:
Если вы хотите изучить файл сброса, введите следующую команду, чтобы передать путь файла сброса в пакетный файл:
Чем открыть файл дампа памяти Windows MEMORY.DMP
Многие знакомы с «синим экраном смерти» или BlueScreen. Синий экран появляется когда в работе Windows возникает критическая ошибка, что приводит к остановке работы операционной системы. При этом операционная система создает дамп памяти, в который записывает отладочную информацию и добавляет запись в журнал событий.
Просмотр и анализ файла минидампа.
Для просмотра минидампа достаточно перетащить файл в окно программы и тут же загрузится отладочная информация. Красным будут подсвечены модули вызвавшие ошибку. В случае представленном на скриншоте выше это был драйвер tcpip.sys.
Щелкнув по имени файла минидампа можно запустить поиск решения в Google.
Просмотр полного дампа памяти MEMORY.DMP.
Установка и настройка WinDBG.
Запускаем установку пакета Windows Software Development KIT и на этапе выбора компонентов отмечаем «Debugging Tools for Windows».
При первом запуске WinDBG необходимо выполнить настройку сервера отладочных символов.
1. Переходим в меню File > Symbol File Path и вставляем строку:
2. Сохраняем настройку File > Save Workspace.
Просмотр и анализ файла MEMORY.DMP.
Открываем файл MEMORY.DMP: File > Open Crash Dump. Начинается процесс загрузки отладочных символов, в этот момент внизу будет видна надпись: Debugee not connected.
По завершении обработки файла дампа памяти Windows нам необходимо найти среди полученной информации модуль, который вызвал сбой в работе. Найти сбойный модуль можно в строках MODULE_NAME и IMAGE_NAME.
В моем случае произошел сбой в работе драйвера srv.sys. В строке MODULE_NAME имя представлено в виде ссылке, щелкнув по которому можно получить информацию о модуле.
После выявления драйвера послужившего причиной сбоя в работе Windows и появления «Синего экрана смерти» необходимо попытаться обновить его.
Большинство проблем с драйверами решаются их обновлением.
Чем прочитать memory dmp
Как анализировать синий экран dump memory в Windows-01
Синий экран смерти или как его еще называют BSOD, может изрядно подпортить жизнь как компьютеру так и серверу, а еще выяснилось и виртуальной машине. Сегодня расскажу как анализировать синий экран dump memory в Windows, так как правильная диагностика и получение причины из за чего не работает ваша система, 99 процентов ее решения, тем более системный инженер, просто обязан уметь это делать, да и еще в кратчайшие сроки, так как от этого бизнес может в следствии простоя сервиса, терять кучу денег.
BSOD расшифровка
Давайте для начала разберем, что означает данная аббревиатура, BSOD от английского Blue Screen of Death или еще режим STOP ошибки.
Ошибки синего экрана смерти возникают по разным причинам, среди которых могут быть проблемы с драйверами, может быть какое то сбойное приложение, или сбойный модуль оперативной памяти. Как только у вас появился синий экран в Windows, то ваша система автоматически создаст файл crash memory dump, который мы и будем анализировать.
Как настроить создание memory dump
По умолчанию windows при синем экране создает аварийный дамп файл memory.dmp, сейчас покажу как он настраивается и где хранится, я буду показывать на примере Windows Server 2008 R2, так как у меня недавно была задача по изучению вопроса синего экрана в виртуальной машине. Для того чтобы узнать где настроен dump memory windows, открываем пуск и щелкаем правым кликом по значку Компьютер и выбираем свойства.
Как анализировать синий экран dump memory в Windows-Свойства компьютера
Далее идем в пункт Дополнительные параметры системы
Как анализировать синий экран dump memory в Windows-параметры системы
Переходим во вкладку Дополнительно-Загрузка и восстановление. Жмем кнопку Параметры
Как анализировать синий экран dump memory в Windows-Загрузка и восстановление
Где хранится файл memory.dmp
и видим, что во первых стоит галка выполнить автоматическую перезагрузку, для записи отладочной информации, выбрано Дамп памяти ядра и ниже есть пусть куда сохраняется дамп памяти %SystemRoot%\MEMORY.DMP
Как анализировать синий экран dump memory в Windows-05
Перейдем в папку c:\windows\ и найдем файл MEMORY.DMP в нем содержаться коды синего экрана смерти
Как анализировать синий экран dump memory в Windows-memory.dmp
Как настроить mini dump
В малый дамп памяти тоже записываются ошибки синего экрана смерти, настраивается он там же, нужно только его выбрать.
Как анализировать синий экран dump memory в Windows-07
Хранится он в папке c:\windows\minidump. Преимущество в том, что он занимает меньше места и на каждый синий экран создается отдельным файлом. Всегда можно просмотреть историю появлений синего экрана.
Как анализировать синий экран dump memory в Windows-08
Теперь когда мы разобрались где искать файл memory dump, нужно научиться его интерпритировать и понимать причину из за чего происходит синий экран смерти. В решении этой задачи нам поможет Microsoft Kernel Debugger. Скачать Microsoft Kernel Debugger можно с официального сайта, главное выберите нужную версию ОС если кому то влом, то можете скачать с яндекс диска по прямой ссылке. Так же он входит в состав ADK.
Как установить Microsoft Kernel Debugger
Скачиваем Microsoft Kernel Debugger, в итоге у вас будет маленький файл который позволит скачать из интернета все что вам нужно. Запускаем его.
Как установить Microsoft Kernel Debugger-01
присоединяться к программе по улучшению качества участвовать не будем
Как установить Microsoft Kernel Debugger-02
жмем Accept и соглашаемся с лицензией
Как установить Microsoft Kernel Debugger-соглашаемся с лицензией
Далее выбираем компонент и жмем install
Как установить Microsoft Kernel Debugger-04
начнется установка Microsoft Kernel Debugger
Как установить Microsoft Kernel Debugger-установка MKD
Видим, что Microsoft Kernel Debugger успешно установлен
Как установить Microsoft Kernel Debugger-06
После чего видим, что в пуске появилась папка Debugging Tools for Windows как для 32 так и для 64 битных систем.
Как установить Microsoft Kernel Debugger-07
Анализ синего экрана в Debugging Tools
После установки Debugging Symbols под систему на которой был синий экран смерти запускаем Debugging Tools
Как установить Microsoft Kernel Debugger-Запуск
Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path…
Как установить Microsoft Kernel Debugger-09
Нажимаем кнопку Browse…
Как установить Microsoft Kernel Debugger10
и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти, можно указать несколько папок через запятую и можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим:
Как установить Microsoft Kernel Debugger-11
Как анализировать синий экран смерти
Копируем с компьютера где выскочил синий экран, файл memory.dmp или minidump, и открываем его, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.
Как анализировать синий экран смерти-01
Выбираем для примера minidump
Как анализировать синий экран смерти-открываем minidump
Начнется анализ минидампа, видим появилась ссылка на ошибку, щелкаем по ней для более детальной информации о синем экране.
Как анализировать синий экран смерти-03
И видим сбойное приложение которое крушит вашу систему, так же можно еще детальнее посмотреть в чем дело, ткнув ссылку.
Как анализировать синий экран смерти-04
Получите более детальную информацию по причине синего экрана.
Как анализировать синий экран смерти-05
Если открыть memory.dmp то вы получите подобную картину и видим почему синий экран у вас появился.
Как анализировать синий экран смерти-06
Ткнув по ссылке в логе вы получаете самую детальную информацию об ошибке.
Как анализировать синий экран смерти-07
Вот так вот просто диагностировать и устранить синий экран смерти.
Анализ дампа памяти в Windows при BSOD с помощью WinDBG
В момент критического сбоя операционная система Windows прерывает работу и показывает синий экран смерти (BSOD). Содержимое оперативной памяти и вся информация о возникшей ошибке записывается в файл подкачки. При следующей загрузке Windows создается аварийный дамп c отладочной информацией на основе сохраненных данных. В системном журнале событий создается запись о критической ошибке.
Типы аварийных дампов памяти Windows
На примере актуальной операционной системы Windows 10 (Windows Server 2016) рассмотрим основные типы дампов памяти, которые может создавать система:
Как включить создание дампа памяти в Windows?
С помощью Win+Pause откройте окно с параметрами системы, выберите «Дополнительные параметры системы» (Advanced system settings). Во вкладке «Дополнительно» (Advanced), раздел «Загрузка и восстановление» (Startup and Recovery) нажмите кнопку «Параметры» (Settings). В открывшемся окне настройте действия при отказе системы. Поставьте галку в чек-боксе «Записать события в системный журнал» (Write an event to the system log), выберите тип дампа, который должен создаваться при сбое системы. Если в чек-боксе «Заменять существующий файл дампа» (Overwrite any existing file) поставить галку, то файл будет перезаписываться при каждом сбое. Лучше эту галку снять, тогда у вас будет больше информации для анализа. Отключите также автоматическую перезагрузку системы (Automatically restart).
В большинстве случаев для анализа причины BSOD вам будет достаточно малого дампа памяти.
Теперь при возникновении BSOD вы сможете проанализировать файл дампа и найти причину сбоев. Мини дамп по умолчанию сохраняется в папке %systemroot%\minidump. Для анализа файла дампа рекомендую воспользоваться программой WinDBG (Microsoft Kernel Debugger).
Установка WinDBG в Windows
Утилита WinDBG входит в «Пакет SDK для Windows 10» (Windows 10 SDK). Скачать можно здесь.
Файл называется winsdksetup.exe, размер 1,3 МБ.
Запустите установку и выберите, что именно нужно сделать – установить пакет на этот компьютер или загрузить для установки на другие компьютеры. Установим пакет на локальный компьютер.
Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.
После установки ярлыки WinDBG можно найти в стартовом меню.
Настройка сервера отладочных символов в WinDBG
Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.
Настройте WinDBG на использование Microsoft Symbol Server:
WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:
Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.
Анализ аварийного дампа памяти в WinDBG
Отладчик WinDBG открывает файл дампа и загружает необходимые символы для отладки из локальной папки или из интернета. Во время этого процесса вы не можете использовать WinDBG. Внизу окна (в командной строке отладчика) появляется надпись Debugee not connected.
Команды вводятся в командную строку, расположенную внизу окна.
Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 0xXXXXXXXX (указываются в одном из вариантов — STOP: 0x0000007B, 02.07.2019 0008F, 0x8F). В нашем примере код ошибки 0х139.
*****************************************************************************
* *
* Bugcheck Analysis *
* *
*****************************************************************************
Символическое имя STOP-ошибки (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Описание ошибки (Компонент ядра повредил критическую структуру данных. Это повреждение потенциально может позволить злоумышленнику получить контроль над этой машиной):
A kernel component has corrupted a critical data structure. The corruption could potentially allow a malicious user to gain control of this machine.
Аргументы ошибки:
Arguments:
Arg1: 0000000000000003, A LIST_ENTRY has been corrupted (i.e. double remove).
Arg2: ffffd0003a20d5d0, Address of the trap frame for the exception that caused the bugcheck
Arg3: ffffd0003a20d528, Address of the exception record for the exception that caused the bugcheck
Arg4: 0000000000000000, Reserved
Debugging Details:
——————
Счетчик показывает сколько раз система упала с аналогичной ошибкой:
Основная категория текущего сбоя:
Код STOP-ошибки в сокращенном формате:
Процесс, во время исполнения которого произошел сбой (не обязательно причина ошибки, просто в момент сбоя в памяти выполнялся этот процесс):
Последний вызов в стеке:
LAST_CONTROL_TRANSFER: from fffff8040117d6a9 to fffff8040116b0a0
Стек вызовов в момент сбоя:
Участок кода, где возникла ошибка:
FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr [rsp+20h],0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: MachineOwner
Имя модуля в таблице объектов ядра. Если анализатору удалось обнаружить проблемный драйвер, имя отображается в полях MODULE_NAME и IMAGE_NAME:
MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe
Если кликнете по ссылке модуля (nt), то увидите подробную информацию о пути и других свойствах модуля. Находите указанный файл, и изучаете его свойства.
1: kd> lmvm nt
Browse full module list
Loaded symbol image file: ntkrnlmp.exe
Mapped memory image file: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Image path: ntkrnlmp.exe
Image name: ntkrnlmp.exe
InternalName: ntkrnlmp.exe
OriginalFilename: ntkrnlmp.exe
ProductVersion: 6.3.9600.18946
FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)
В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.
Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.
Image path: \SystemRoot\system32\drivers\cmudaxp.sys
Image name: cmudaxp.sys
Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.