Проверка дампа на ошибки

В момент критического сбоя операционная система Windows прерывает работу и показывает синий экран смерти (BSOD). Содержимое оперативной памяти и вся информация о возникшей ошибке записывается в файл подкачки. При следующей загрузке Windows создается аварийный дамп c отладочной информацией на основе сохраненных данных. В системном журнале событий создается запись о критической ошибке.

Внимание! Аварийный дамп не создается, если отказала дисковая подсистема или критическая ошибка возникла на начальной стадии загрузки Windows.

Содержание:

  • Типы аварийных дампов памяти Windows
  • Как включить создание дампа памяти в Windows?
  • Установка WinDBG в Windows
  • Настройка ассоциации .dmp файлов с WinDBG
  • Настройка сервера отладочных символов в WinDBG
  • Анализ аварийного дампа памяти в WinDBG

Типы аварийных дампов памяти Windows

На примере актуальной операционной системы Windows 10 (Windows Server 2016) рассмотрим основные типы дампов памяти, которые может создавать система:

  • Мини дамп памяти (Small memory dump) (256 КБ). Этот тип файла включает минимальный объем информации. Он содержит только сообщение об ошибке BSOD, информацию о драйверах, процессах, которые были активны в момент сбоя, а также какой процесс или поток ядра вызвал сбой.
  • Дамп памяти ядра (Kernel memory dump). Как правило, небольшой по размеру — одна треть объема физической памяти. Дамп памяти ядра является более подробным, чем мини дамп. Он содержит информацию о драйверах и программах в режиме ядра, включает память, выделенную ядру Windows и аппаратному уровню абстракции (HAL), а также память, выделенную драйверам и другим программам в режиме ядра.
  • Полный дамп памяти (Complete memory dump). Самый большой по объему и требует памяти, равной оперативной памяти вашей системы плюс 1MB, необходимый Windows для создания этого файла.
  • Автоматический дамп памяти (Automatic memory dump). Соответствует дампу памяти ядра с точки зрения информации. Отличается только тем, сколько места он использует для создания файла дампа. Этот тип файлов не существовал в Windows 7. Он был добавлен в Windows 8.
  • Активный дамп памяти (Active memory dump). Этот тип отсеивает элементы, которые не могут определить причину сбоя системы. Это было добавлено в Windows 10 и особенно полезно, если вы используете виртуальную машину, или если ваша система является хостом Hyper-V.

Как включить создание дампа памяти в 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 вам будет достаточно малого дампа памяти.

настройка minidump в windows 10

Теперь при возникновении BSOD вы сможете проанализировать файл дампа и найти причину сбоев. Мини дамп по умолчанию сохраняется в папке %systemroot%minidump. Для анализа файла дампа рекомендую воспользоваться программой WinDBG (Microsoft Kernel Debugger).

Установка WinDBG в Windows

Утилита WinDBG входит в «Пакет SDK для Windows 10» (Windows 10 SDK). Скачать можно здесь.

Файл называется winsdksetup.exe, размер 1,3 МБ.

WinDBG для Windows7 и более ранних систем включен в состав пакета «Microsoft Windows SDK for Windows 7 and .NET Framework 4». Скачать можно здесь.

Запустите установку и выберите, что именно нужно сделать – установить пакет на этот компьютер или загрузить для установки на другие компьютеры. Установим пакет на локальный компьютер.

установка Windows 10 SDK

Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.

установка Debugging Tools for Windows

После установки ярлыки WinDBG можно найти в стартовом меню.

Настройка ассоциации .dmp файлов с WinDBG

Для того, чтобы открывать файлы дампов простым кликом, сопоставьте расширение .dmp с утилитой WinDBG.

  1. Откройте командную строку от имени администратора и выполните команды для 64-разрядной системы:
    cd C:Program Files (x86)Windows Kits10Debuggersx64
    windbg.exe –IA


    для 32-разрядной системы:
    C:Program Files (x86)Windows Kits10Debuggersx86
    windbg.exe –IA
  2. В результате типы файлов: .DMP, .HDMP, .MDMP, .KDMP, .WEW – будут сопоставлены с WinDBG.

windbg ассоциация .dmp файлов

Настройка сервера отладочных символов в WinDBG

Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.

Настройте WinDBG на использование Microsoft Symbol Server:

  • Откройте WinDBG;
  • Перейдите в меню File –> Symbol File Path;
  • Пропишите строку, содержащую URL для загрузки символов отладки с сайта Microsoft и папку для сохранения кэша:
    SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols
    В примере кэш загружается в папку E:Sym_WinDBG, можете указать любую.
  • Не забывайте сохранить изменения в меню File –> Save WorkSpace;

WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:

SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:Symbols

Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.

Анализ аварийного дампа памяти в WinDBG

Отладчик WinDBG открывает файл дампа и загружает необходимые символы для отладки из локальной папки или из интернета. Во время этого процесса вы не можете использовать WinDBG. Внизу окна (в командной строке отладчика) появляется надпись Debugee not connected.

Команды вводятся в командную строку, расположенную внизу окна.

windbg - анализ дампа памяти

Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 0xXXXXXXXX (указываются в одном из вариантов — STOP: 0x0000007B, 02.07.2019 0008F, 0x8F). В нашем примере код ошибки 0х139.

Полный справочник ошибок можно посмотреть здесь.

Отладчик предлагает выполнить команду !analyze -v, достаточно навести указатель мыши на ссылку и кликнуть. Для чего нужна эта команда?

  • Она выполняет предварительный анализ дампа памяти и предоставляет подробную информацию для начала анализа.
  • Эта команда отобразит STOP-код и символическое имя ошибки.
  • Она показывает стек вызовов команд, которые привели к аварийному завершению.
  • Кроме того, здесь отображаются неисправности IP-адреса, процессов и регистров.
  • Команда может предоставить готовые рекомендации по решению проблемы.

Основные моменты, на которые вы должны обратить внимание при анализе после выполнения команды !analyze –v (листинг неполный).

1: kd>
!analyze -v

*****************************************************************************
* *
* 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:
------------------

Счетчик показывает сколько раз система упала с аналогичной ошибкой:

CUSTOMER_CRASH_COUNT: 1

Основная категория текущего сбоя:

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

Код STOP-ошибки в сокращенном формате:

BUGCHECK_STR: 0x139

Процесс, во время исполнения которого произошел сбой (не обязательно причина ошибки, просто в момент сбоя в памяти выполнялся этот процесс):

PROCESS_NAME: sqlservr.exe

CURRENT_IRQL: 2

Расшифровка кода ошибки: В этом приложении система обнаружила переполнение буфера стека, что может позволить злоумышленнику получить контроль над этим приложением.

ERROR_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.

Последний вызов в стеке:

LAST_CONTROL_TRANSFER: from fffff8040117d6a9 to fffff8040116b0a0

Стек вызовов в момент сбоя:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9 : 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528 : nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50 : ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2 : nt!KiBugCheckDispatch+0x69
ffffd000`3a20d3f0 fffff804`0117c150 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiFastFailDispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482 : ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9 : nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d : 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 : nt! ?? ::FNODOBFM::`string'+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac : 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600 : nt!IopSynchronousServiceTail+0x379
ffffd000`3a20d990 fffff804`0117d313 : ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380 : nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
000000ee`f25ed2b8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`475307da

Участок кода, где возникла ошибка:

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:ProgramDatadbgsymntoskrnl.exe5A9A2147787000ntoskrnl.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)

windbg - lvm nt

В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.

Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.

Например:

Image path: SystemRootsystem32driverscmudaxp.sys
Image name: cmudaxp.sys

Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.

В случае критической ошибки система останавливает свою работу, отображает синий экран смерти (BSOD), информация об ошибке и содержимое памяти сохраняется в файле подкачки. При последующей загрузке системы, на основе сохраненных данных, создается аварийный дамп c отладочной информацией. В системном журнале событий создается запись о критической ошибке.

Если критическая ошибка возникла на ранней стадии загрузки системы или в результате ошибки произошел отказ дисковой подсистемы, аварийный дамп сохранен не будет.

Аварийный дамп может быть проанализирован с помощью утилиты BlueScreenView или системного отладчика WinDbg (Debugging Tools for Windows).

Содержание

  • Анализ аварийного дампа утилитой BlueScreenView
  • Анализ аварийного дампа отладчиком WinDbg
  • Получение информации о проблемном драйвере
  • Аппаратные причины возникновения критических ошибок
  • Настройка параметров сохранения аварийного дампа

Анализ аварийного дампа утилитой BlueScreenView

Простейшим инструментом для анализа аварийных дампов является утилита BlueScreenView от NirSoft.

Загружаем программу с сайта разработчика.

BlueScreenView сканирует папку с минидампами и отображает информацию по найденным отказам.

По каждому отказу отображается дата, данные об ошибке и драйвер, который предположительно вызвал отказ.

В нижней части окна отображается список загруженных в системе драйверов. Модули, к которым выполнялось обращение в момент отказа, выделены цветом, на них следует обратить особое внимание, они могут быть причиной отказа.

По двойному клику отображается дополнительная информация.

Анализ аварийного дампа отладчиком WinDbg

С помощью WinDbg из аварийного дампа можно вытащить более детальную информацию, включая расшифровку стека.

Установка Debugging Tools for Windows (WinDbg)

Microsoft распространяет WinDbg только в составе SDK, загрузить веб-установщик можно на странице загрузки.

Для анализа аварийных дампов установка SDK не требуется. Скачать Debugging Tools for Windows (WinDbg) отдельным пакетом можно здесь.

После установки, корректируем ярлык для запуска WinDbg. В свойствах ярлыка, устанавливаем флажок запуска от имени администратора. Также, в качестве рабочей папки, задаем: %SystemRoot%Minidump.

Настройка отладочных символов

Отладочные символы содержат символические имена функций из исходного кода. Они необходимы для расшифровки и интерпретации аварийного дампа.

При первом запуске WinDbg, необходимо указать путь к отладочным символам, для этого открываем меню File, Symbol File Path, или используем комбинацию Ctrl+S.

Следующей строкой включаем загрузку отладочных символов из сети, задаем локальный путь для сохранения файлов и адрес для загрузки из интернета:

srv*C:Windowssymbols*http://msdl.microsoft.com/download/symbols

Анализ аварийного дампа

Запускаем WinDbg.

В меню выбираем File, Open Crash Dump, или нажимаем Ctrl+D.

Указываем путь к дампу %SystemRoot%MEMORY.DMP или %SystemRoot%Minidumpфайл.dmp.

Загрузка отладочных символов из интернета может занять некоторое время.

Для получения детальной информации выполняем команду:

!analyze -v

Дебаггер сам вам предложит ее выполнить, достаточно навести указатель мыши на ссылку и кликнуть.

В результате получаем следующий вывод:

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Тип ошибки: KMODE_EXCEPTION_NOT_HANDLED (1e)
Комментарий к ошибке: This is a very common bugcheck.  Usually the exception address pinpoints
the driver/function that caused the problem.  Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Аргументы ошибки:
Arg1: 0000000000000000, The exception code that was not handled
Arg2: 0000000000000000, The address that the exception occurred at
Arg3: 0000000000000000, Parameter 0 of the exception
Arg4: 0000000000000000, Parameter 1 of the exception

Debugging Details:
------------------

EXCEPTION_CODE: (Win32) 0 (0) -                           .

FAULTING_IP:
+3332313336383065
00000000`00000000 ??              ???

EXCEPTION_PARAMETER1:  0000000000000000

EXCEPTION_PARAMETER2:  0000000000000000

ERROR_CODE: (NTSTATUS) 0 - STATUS_WAIT_0

BUGCHECK_STR:  0x1E_0

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

Процесс, вызвавший ошибку: PROCESS_NAME:  VirtualBox.exe

CURRENT_IRQL:  2

EXCEPTION_RECORD:  fffff80000ba24d8 -- (.exr 0xfffff80000ba24d8)
ExceptionAddress: fffff800034d8a70 (nt!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 0000000000000000

TRAP_FRAME:  fffff80000ba2580 -- (.trap 0xfffff80000ba2580)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000142940 rbx=0000000000000000 rcx=fffffa80055be690
rdx=0000000000009018 rsi=0000000000000000 rdi=0000000000000000
rip=fffff800034d8a71 rsp=fffff80000ba2718 rbp=fffff88006fa0000
 r8=0000000000002274  r9=11d0851b22c6ac61 r10=fffff80003464000
r11=fffff80000ba27e0 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl nz ac po nc
nt!DbgBreakPoint+0x1:
fffff800`034d8a71 c3              ret
Resetting default scope

LAST_CONTROL_TRANSFER:  from fffff800034d85fe to fffff800034e0c10

STACK_TEXT:
Стек вызовов:
fffff800`00ba15b8 fffff800`034d85fe : fffffa80`03c05530 00000000`ffffffff fffff800`00ba1d30 fffff800`0350c830 : nt!KeBugCheck
fffff800`00ba15c0 fffff800`0350c4fd : fffff800`036ea71c fffff800`03627c30 fffff800`03464000 fffff800`00ba24d8 : nt!KiKernelCalloutExceptionHandler+0xe
fffff800`00ba15f0 fffff800`0350b2d5 : fffff800`0362b028 fffff800`00ba1668 fffff800`00ba24d8 fffff800`03464000 : nt!RtlpExecuteHandlerForException+0xd
fffff800`00ba1620 fffff800`0351c361 : fffff800`00ba24d8 fffff800`00ba1d30 fffff800`00000000 00000000`00142940 : nt!RtlDispatchException+0x415
fffff800`00ba1d00 fffff800`034e02c2 : fffff800`00ba24d8 fffffa80`07149010 fffff800`00ba2580 00000000`00000000 : nt!KiDispatchException+0x135
fffff800`00ba23a0 fffff800`034de0f4 : 00000000`00000016 00000000`00000001 00000000`00000001 00000000`00000000 : nt!KiExceptionDispatch+0xc2
fffff800`00ba2580 fffff800`034d8a71 : fffff880`05861446 00000000`df029940 fffff880`02f45bec 00000000`deee7000 : nt!KiBreakpointTrap+0xf4
fffff800`00ba2718 fffff880`05861446 : 00000000`df029940 fffff880`02f45bec 00000000`deee7000 fffff880`01229f06 : nt!DbgBreakPoint+0x1
fffff800`00ba2720 00000000`df029940 : fffff880`02f45bec 00000000`deee7000 fffff880`01229f06 fffffa80`05635af8 : cmudaxp+0x25446
fffff800`00ba2728 fffff880`02f45bec : 00000000`deee7000 fffff880`01229f06 fffffa80`05635af8 00000000`00000000 : 0xdf029940
fffff800`00ba2730 00000000`deee7000 : fffff880`01229f06 fffffa80`05635af8 00000000`00000000 00000000`00000003 : VBoxDrv+0x6bec
fffff800`00ba2738 fffff880`01229f06 : fffffa80`05635af8 00000000`00000000 00000000`00000003 fffff880`05865913 : 0xdeee7000
fffff800`00ba2740 00000000`00000000 : 00000000`00000001 00000000`00000006 00000000`00000001 fffff800`00ba2800 : CLASSPNP!ClasspServiceIdleRequest+0x26

STACK_COMMAND:  kb

FOLLOWUP_IP:
cmudaxp+25446
fffff880`05861446 ??              ???

SYMBOL_STACK_INDEX:  8

SYMBOL_NAME:  cmudaxp+25446

FOLLOWUP_NAME:  MachineOwner

Драйвер, в котором возникла ошибка: MODULE_NAME: cmudaxp

IMAGE_NAME:  cmudaxp.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  47906a45

FAILURE_BUCKET_ID:  X64_0x1E_0_cmudaxp+25446

BUCKET_ID:  X64_0x1E_0_cmudaxp+25446

Followup: MachineOwner
---------

Получение информации о проблемном драйвере

Если удалось обнаружить драйвер, в котором возникла ошибка, имя драйвера будет отображено в полях MODULE_NAME и IMAGE_NAME.

Чтобы получить путь к файлу и прочую информацию, щелкаем по ссылке на модуль:

start             end                 module name
fffff880`0583c000 fffff880`059ef000   cmudaxp  T (no symbols)
    Loaded symbol image file: cmudaxp.sys
    Image path: SystemRootsystem32driverscmudaxp.sys
    Image name: cmudaxp.sys
    Timestamp:        Fri Jan 18 13:58:45 2008 (47906A45)
    CheckSum:         0013077F
    ImageSize:        001B3000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

Если полный путь к драйверу не указан, по умолчанию используется папка %SystemRoot%system32drivers.

Находим указанный файл, и изучаем его свойства.

Обновляем проблемный драйвер.

Аппаратные причины возникновения критических ошибок

Источником критических ошибок нередко бывают неисправности в дисковой подсистеме, или в подсистеме памяти.

Диагностика неисправностей диска

В случае ошибок дисковой подсистемы, аварийный дамп может не сохраняться.

Чтобы исключить проблемы с диском, проверяем системный журнал событий на наличие ошибок чтения и записи на диск.

Проверяем параметры S.M.A.R.T жесткого диска, получить их можно, например, с помощью программы SpeedFan или CrystalDiskInfo.

Особое внимание обращаем на параметры: «Current Pending Sector Count» и «Uncorrectable Sector Count», ненулевые значения этих параметров сигнализируют о неисправности диска.

Ненулевое значение параметра: «UltraDMA CRC Error Count», сигнализирует о проблеме с SATA-кабелем.

Подробнее о параметрах S.M.A.R.T. читаем в статье Википедии.

Диагностика неисправностей памяти

Проблемы с памятью нередко могут стать причиной самых разнообразных глюков, включая различные синие экраны, зависания, аварийное завершение программ, повреждение реестра, повреждение файловой системы и данных.

Выявить проблемы с памятью можно с помощью утилиты Memtest86+.

Загружаем образ по ссылке, записываем на диск, загружаемся с диска, запускается тест.

Начиная с Windows Vista, в системе имеется свой тест памяти. Для его запуска нажимаем «Пуск», в строке поиска набираем «памяти«, выбираем «Средство диагностики памяти Windows».

Проблемы с памятью в некоторых случаях могут быть устранены обновлением BIOS.

Настройка параметров сохранения аварийного дампа

Для изменения параметров сохранения аварийного дампа нажимаем кнопку «Пуск», щелкаем на «Компьютер» правой кнопкой мыши, в контекстном меню выбираем «Свойства». В окне «Система» слева выбираем «Дополнительные параметры системы», в группе «Загрузка и восстановление» нажимаем кнопку «Параметры».

Время на прочтение
2 мин

Количество просмотров 298K

Как часто Вам приходится лицезреть экран смерти Windows (BSoD)? BSoD может возникать в разных случаях: как уже при работе с системой, так и в процессе загрузки операционной системы. Как же определить, чем вызвано появление BSoD и устранить эту проблему? Операционная система Windows способна сохранять дамп памяти при появлении ошибки, чтобы системный администратор мог проанализировать данные дампа и найти причину возникновения BSoD.

Существует два вида дампов памяти — малый (minidump) и полный. В зависимости от настроек операционной системы, система может сохранять полный или малый дампы, либо не предпринимать никаких действий при возникновении ошибки.

Малый дамп располагается по пути %systemroot%minidump и имеет имя вроде Minixxxxxx-xx.dmp
Полный дамп располагается по пути %systemroot% и имеет имя вроде Memory.dmp

Для анализа содержимого дампов памяти следует применять специальную утилиту — Microsoft Kernel Debugger.
Получить программу и компоненты, необходимые для ее работы, можно напрямую с сайта Microsoft — Debugging Tools

При выборе отладчика следует учитывать версию операционной системы, на которой Вам придется анализировать дампы памяти. Для 32-разрядной ОС необходима 32-битовая версия отладчика, а для 64-разрядной ОС предпочтительно использовать 64-битовую версию отладчика.

Помимо самого пакета Debugging Tools for Windows, также понадобятся набор отладочных символов — Debugging Symbols. Набор отладочных символов специфичен для каждой ОС, на которой был зафиксирован BSoD. Потому придется загрузить набор символов для каждой ОС, анализировать работу которой Вам придется. Для 32-разрядной Windows XP потребуются набор символов для Windows XP 32-бит, для 64-разрядной ОС потребуются набор символов для Windows XP 64-бит. Для других ОС семейства Windows наборы символов подбираются сообразно такому же принципу. Загрузить отладочные символы можно отсюда. Устанавливать их рекомендуется по адресу %systemroot%symbols

После установки отладчика и отладочных символов, запускаем отладчик. Окно отладчика после запуска выглядит следующим образом.
main image

Перед анализом содержимого дампа памяти, потребуется провести небольшую настройку отладчика. Конкретно — сообщить программе, по какому пути следует искать отладочные символы. Для этого выбираем в меню File > Symbol File Path… Нажимаем кнопку Browse… и указываем папку, в которую мы установили отладочные символы для рассматриваемого дампа памяти.
symbols path

Можно запрашивать информацию о требуемых отладочных символах прямо через Интернет, с публичного сервера Microsoft. Таким образом у вас будет самая новая версия символов. Сделать это можно следующим образом — в меню File > Symbol File Path… вводим: SRV*%systemroot%symbols*http://msdl.microsoft.com/download/symbols

После указания пути к отладочным символам, выбираем в меню File > Save workspace и подтверждаем действие нажатием на кнопку OK.

Чтобы приступить к анализу дампа памяти, выбираем в меню File > Open Crash Dump… и выбираем требуемый для рассмотрения файл.
open dump

Система проведет анализ содержимого, по окончанию которого выдаст результат о предполагаемой причине ошибки.
caused by

Команда !analyze -v, данная отладчику в командной строке, выведет более детальную информацию.

Завершить отладку можно выбором пункта меню Debug > Stop Debugging

Таким образом, используя пакет Debugging Tools for Windows, всегда можно получить достаточно полное представление о причинах возникновения системных ошибок.

Чтобы исправить синий экран смерти необходимо выявить причину его появления. Для этого нужно проанализировать аварийный файл дампа памяти.Файл дампа. Способы анализа Анализ аварийного дампа можно провести различными способами. Об этом как раз и поговорим в этой статье.

Что нужно знать, про файл дампа?

В предыдущей статье на сайте мы уже писали про причины, которые чаще всего приводят к синему экрану смерти. Также показали как правильно настроить создание аварийных дампов памяти и рассказали где хранится этот самый файл дампа. Мельком коснулись того, что по стоп коду и по информации из дамп файла можно путём анализа точнее выяснить причину приведшую к 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 и т.д.). Нужный набор символов также можно скачать в самом отладчике, но об этом ниже.
После установки утилиты и набора отладочных символов, можно запустить сам отладчик. После запуска необходимо в его настройках указать ему путь до отладочных символов. Для этого:
Нажмите на кнопку FileSymbol File Path…
Далее нажмите кнопку Browse и укажите папку куда сохранили набор символов.
Скачать самую новую версию символов можно с помощью самой утилиты. Для этого в поле FileSymbol File Path… введите:
SRV*C:symbols*http://msdl.microsoft.com/download/symbolsзагрузка отладочных символов для WinDBG с сервера MicroSoft
Далее нажмите на FileSave workspace и затем нажмите на ОК.
Таким образом утилита запросит информацию об отладочных символах через интернет напрямую с сервера Microsoft.
Для того, чтобы приступить к анализу нажмите на File > Open Crash Dump… и укажите требуемый файл дампа памяти (малый дамп памяти).
Система проведёт анализ дампа и по результатам выдаст возможную причину ошибки.Результаты анализа дамп файла в WinDBG
Кликнув по гиперссылке !analyse-v откроется более расширенная информация по ошибке.
Завершить отладку можно с помощью пункта меню Debug > Stop Debugging.

Анализ файла дампа с BlueScreenView

BlueScreenView это бесплатная утилита для анализа файла малого аварийного дампа памяти. Данная утилита имеет поддержку русского языка. Основным плюсом данной программы является то, что для её работы не нужно скачивать отладочные символы. Это делает эту утилиту полностью автономной и независимой. Еще одним плюсом данной программы является наличие портабельной версии, то есть версии, которую не нужно устанавливать в систему. Автором программы является Nier Sofer. Скачать можно с официального сайта автора. Портабельную версию программы можно скачать по ссылке на официальной странице, в названии которого, в скобках указано in Zip file.версии программы BlueScreenView для скачивания При скачивании важно учитывать разрядность вашей ОС.
Пролистав чуть ниже можно скачать файл русификации — BlueScreenView_lng.ini, который нужно просто закинуть в папку с самой программой. Я подготовил для скачивания программу с уже настроенным языком. Вот прямые ссылки:

  • Для x86_32 битной ОС
  • Для x64 битной ОС

А теперь непосредственно про процедуру анализа.

Как провести анализ файла дампа с BlueScreenView?

После запуска программа сразу сканирует стандартную директорию хранения файла дампа — %SystemRoot%Minidump. Директорию можно изменить в дополнительных параметрах программы. Интерфейс окна программы условно можно поделить на 3 области:

  • Верхняя область кнопок меню
  • Средняя область со списком файлов дампов
  • Нижняя область со списком драйверов

интерфейс программы BlueScreenView
Данные анализа выводятся в табличном виде. Перечислю наиболее важные из столбцов средней области интерфейсного окна программы (в скобках наименование из англ. версии):

  • Текст ошибки (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). Отображается версия файла драйвера.

Для анализа выделяем нужный файл дампа в средней области окна утилиты. При выделении нижняя область сразу заполняется данными. Смотрим в таблице данные из основных столбцов, которые я привёл выше. В нижней области окна вероятные проблемные драйвера либо модули выделяются красным цветом. Редко, бывают случаи, когда указанный программой в средней области окна драйвер не является источником BSOD ошибки. В таких случаях, среди подсвеченных красным цветом ниже, проблемных драйверов, наверняка присутствует истинный источник синего экрана смерти. В моём случае это: E1G6032E.sys и ntoskrnl.exe. Кстати, оба являются довольно таки распространёнными причинами BSOD.
Если найденные программой источники ошибки вам ни о чём не говорят, то можно просто в поисковике ввести наименование проблемных драйверов и там наверняка найдёте как их побороть.
Для более точного определения проблемных драйверов и модулей можно воспользоваться несколькими способами анализа. Благо в данной статье мы разобрали два наиболее популярных. Следите за публикациями и в дальнейшем выйдет ещё статья про анализ дампов.

Если вам понравилась эта статья, то пожалуйста, оцените её и поделитесь ею со своими друзьями на своей странице в социальной сети.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (7 оценок, среднее: 5,00 из 5)

Загрузка…

If your system has crashed and experienced a Blue Screen of Death (BSoD), or a program or Windows feature suddenly crashes, Windows automatically generates a record of the conditions and circumstances under which the error occurred. This information is stored in dump files…

If your system has crashed and experienced a Blue Screen of Death (BSoD), or a program or Windows feature suddenly crashes, Windows automatically generates a record of the conditions and circumstances under which the error occurred. This information is stored in dump files with the extension “.dmp.”

These dump files can help troubleshoot the root cause of the error so that it does not occur again.

This article contains everything you need to know about these dump files and how they can be opened in Windows, since there is no native method, so they can be analyzed to determine the cause of the error.

Table of contents

  • Windows Crash Dump Files

    • Types of Dump Files

      • Complete Memory Dump
      • Kernel Memory Dump
      • Small Memory Dump/Mini Memory Dump
  • How to Read and Analyze DMP Files

    • Using WinDbg

      • Download and Install WinDbg
      • Open and Analyze dmp files using WinDbg
    • Using WhoCrashed
    • Using BlueScreenView
  • Final Thoughts

Windows Crash Dump Files

Crash dump files, also known as “mini-dump files,” are system-generated binary files that contain various information about a crash that may have occurred on your computer. Like Event Viewer, these files can be used to determine the cause of the error, and then use that data to fix it. Dump files can contain the following data in them, which can be helpful for the matter:

The list below highlights the content which can be found inside a mini-dump file.

  • The Stop message (error code), its parameters, and other data.
  • List of loaded drivers.
  • The processor context (PRCB) for the processor that stopped.
  • Process information and kernel context (EPROCESS) for the process stopped.
  • Process information and kernel context (ETHREAD) for the thread stopped.
  • Kernel-mode call stack for the thread that stopped.

Dump files are created by copying the data off the system memory and onto the computer’s storage. It uses the Windows Page File and requires at least 2MB of free space. With this information, you can understand how different dump files are created.

Windows can write debugging information in three types of dump files.

Types of Dump Files

Complete Memory Dump

Complete Memory Dump files are the largest of the dump files. In this case, the complete contents of the memory are written onto the dump file.

When generated by the system, all old Complete Memory Dump files are replaced and overwritten.

Complete Memory Dump files are saved to C:WindowsMEMORY.DMP file.

Kernel Memory Dump

Kernel Memory Dump files only contain data from kernel memory, which is why they are relatively smaller in size. Such files do not contain data from any unused, unallocated memory or the memory used by user-mode programs.

When generated by the system, all old Kernel Memory Dump files are replaced and overwritten.

Kernel Memory Dump files are also saved to C:WindowsMEMORY.DMP file, the same as Complete Memory Dump files. However, only one of these is saved at a time and is overwritten when another crash occurs.

Small Memory Dump/Mini Memory Dump

The minidump file, which we will discuss in this post, is the smallest kind of dump file. This file contains the information described above that can assist in determining the cause of the crash.  

Minidump files generated by the system are not overwritten. Instead, a new one is generated.  

Minidump files can be found at C:WindowsMinidump. If you do not find a directory named “Minidump,” it is likely because a dump file has not been created yet.

When a minidump file is created, Windows automatically includes the date it was created on. For example, in Windows 11, if a file is named “020322-18890-01.dmp,” “02” indicates the month, “03” indicates the date, and “22” indicates the year the file was created. “-01” at the end indicates it was the first dump file created that day.

The same is true for a minidump file created in Windows 10, which is automatically named something like “mini020322-01.dmp.”

Now let’s move on to opening and analyzing a dump file.

How to Read and Analyze DMP Files

As we mentioned, Windows does not allow you to open dump files directly. However, you can use other tools available online to open and analyze them. One of the most common tools to do so is through the Windows Debugging (WinDbg) tool, which can be downloaded through Microsoft Store. Continue reading the given guide below to use this tool to open and analyze memory dump files in Windows.

Using WinDbg

We have divided this section into 2 parts: Downloading and installing the WinDbg tool and then using it to analyze a dump file.

Download and Install WinDbg

  1. Open the WinDbg Preview page in the Microsoft Store and click Get.
    get
  2. The browser will prompted you to open the Microsoft Store app, click Open Microsoft Store.
    open ms store
  3. From the Store app, click Get again.
    get 2

The WinDbg tool will now begin to download and then install. We are now done with the installation phase. Let us now use the tool to open and analyze dump files.

Open and Analyze dmp files using WinDbg

  1. Open the WinDbg tool with administrative rights by searching for it through the search box, right-clicking it, and then clicking Run as administrator from the context menu.
    run as admin
  2. From the WinDbg tool, click File from the top menu.
  3. In the Start Debugging tab, click Open dump file.
    open dmp
  4. Now click Browse from the right pane within the tool and select the dump file that you want to analyze by navigating to C:WindowsMinidump. When selected, click Open.
    browse open
  5. The tool will now open the dump file, which can take a few minutes. When the dump file successfully opens, type in the following command in the text field in front of “0: kd>“:
    !analyze -v
    analyze
  6. WinDbg will now begin analyzing the dump file. This can take a few minutes to complete. Once completed, you should see the results in the top window.
    results

In the example above, since we initiated a BSoD intentionally, it states “The user manually initiated this crash dump.” Otherwise, if it were an actual error, you would see different statements and information after performing the analysis of the dump file.

You can then use this information to troubleshoot the error that caused the crash.

Using WhoCrashed

Download WhoCrashed

WhoCrashed

WhoCrashed

WhoCrashed is available in both free and paid editions. However, the free edition is sufficient to open and analyze dump files. With this tool, you can obtain reports on the dump files with a single click. The tool will automatically scan your system files for any .dmp files and fetch the data within.

To do so, download WhoCrashed from the link given above, and run the .exe file to install in a few easy steps. Once installed, click Analyze from the ribbon menu at the top. The tool will then take a few seconds to scan any dump files and present the analysis. You can also view the .dmp files discovered from the Dump files tab.

Using BlueScreenView

Download BlueScreenView

BlueScreenView

BlueScreenView

BlueScreenView is a portable and small tool that can provide you with relevant information on minidump files. When you run this tool, it automatically picks up any .dmp files in the Minidump directory and displays the relevant information gathered from them. If there are multiple .dmp files, you can click on the one you want to analyze from the top field within the tool, and the information is presented in the bottom one.

Simply download the app from the link given above, extract the content and run the BlueScreenView application.

Final Thoughts

Dump files, regardless of their type, can be pretty useful when it comes to troubleshooting your operating system. However, the methods we have used above to analyze them may not be everyone’s cup of tea, as some of you may find them complex.

That said, there are more methods to analyze dump files using tools, but they involve using the Command prompt, not a Graphical User Interface (GUI). If you’d still like to learn more about it, you can read this detailed post by Microsoft on memory dump files.

Хотите понять, что приводит к сбою в вашем компьютере и появлению так называемого «синего экрана смерти» (BSoD)? Для анализа отчётов об аварийных сбоях в Windows можно использовать специальное ПО, предназначенное для этих целей. В этой статье я расскажу о лучших бесплатных анализаторах аварийного дампа для ОС Windows.

Всякий раз, когда на вашем компьютере в результате возникшей ошибки происходит сбой, создаётся файл мини-дампа (.dmp), по умолчанию записываемый в папку C:WindowsMiniDump. Если этого не происходит, следует соответствующим образом настроить Windows. Бесплатные программы, о которых пойдёт речь, читают файлы мини-дампа и анализируют причину сбоя, чтобы вы могли просмотреть модуль или драйвер, которые вызвали появление синего экрана.

Программа-анализатор выдаёт подробный отчёт с кодом ошибки, исключением, информацией о файлах и т.д. Сгенерированный отчёт можно экспортировать в файл, чтобы поделиться им с другими пользователями или просмотреть позже. Некоторые программы из этой подборки также показывают отчёты о сбоях приложений и процессов.

BlueScreenView

Это бесплатная утилита, используемая для анализа файлов BSoD и мини-дампа в Windows. С её помощью вы можете просматривать файлы мини-дампа, чтобы понять причины, приведшие к сбою вашего компьютера. BlueScreenView извлекает все файлы мини-дампа из расположения по умолчанию. Но можно изменить расположение по умолчанию или импортировать файл аварийного дампа из пользовательского расположения.

BlueScreenView позволяет просмотреть различную информацию о сбое. Вы сможете увидеть время сбоя, драйвер, который, вероятно, вызвал сбой, код проверки ошибок, адрес сбоя, описание файла, версию файла, параметры сбоя и многое другое. Отчёт со всей (или только с выбранной) информацией о сбое можно экспортировать в формат HTML.

Скачать

WhoCrashed

Это анализатор аварийных дампов для ОС Windows. Домашнюю версию этой программы можно скачать бесплатно.

WhoCrashed извлекает и загружает отчёты о сбоях из местоположения файлов мини-дампа по умолчанию. Начать импорт всех файлов аварийного дампа вы можете, нажав кнопку Анализировать. Предварительно выберите количество отчётов, которое хотите просмотреть. Отчёт о сбое отображается во вкладке Отчёт. Найдите самый последний или любой другой файл мини-дампа, который хотите проанализировать, а затем просмотрите соответствующую инфу в этом разделе.

Программа показывает подробные отчёты о сбоях, включая такие сведения, как ошибки, код проверки ошибок, описание проверки, модуль, который, возможно, вызвал сбой, путь к файлу и многое другое. WhoCrashed предоставляет веб-ссылку, чтобы вы могли просмотреть подробные сведения об ошибке в интернете. В конце вкладки Отчёт есть раздел Заключение, в котором отображается сводка всех сбоев и советы по их предотвращению. Функция Crash Dump Test позволит вам вручную вывести компьютер из строя с целью тестирования. Сгенерированный программой отчёт можно экспортировать в HTML-документ.

Скачать

Windbg

Это ещё одно бесплатное ПО для анализа аварийного дампа в ОС Windows. Этот инструмент отладки является частью пакета Windows Software Development Kit (SDK). При установке этого пакета просто выберите также Инструменты отладки для Windows.

Вы можете импортировать файл мини-дампа со своего компьютера, используя опцию File > Open Crash Dump. Нажмите кнопку Анализировать. Программа отобразит подробный отчёт о сбое, который включает сведения о неисправном драйвере, ошибку исключения, код исключения, квалификатор дампа и многое другое.

Скачать

AppCrashView

А это анализатор аварийного дампа для приложений в ОС Windows. В основном он показывает отчёт дампа для аварийного приложения с использованием файлов отчётов об ошибках Windows (.wer). Так вы сможете просмотреть список процессов, в которых произошёл сбой, и такие сведения, как модули неисправностей, код исключения, имя события, время события и т.д.  Кликните по интересующему процессу, чтобы просмотреть подробный отчёт о сбое. Отчёт о сбое можно сохранить в форматы CSV, HTML, TXT или XML.

Скачать

WinCrashReport

Это бесплатная утилита для отображения отчётов о сбоях процессов и приложений в ОС Windows. С её помощью вы сможете проверить, какое приложение вызвало аварийную ситуацию и почему. Программа отображает адрес сбоя, код исключения, адрес исключения, название продукта, версию файла, строки в стеке, список модулей, данные полного стека и пр. Используя эти сведения, вы можете изучить причину сбоев приложения.

Есть возможность сохранить отчёт о сбое в формате HTML или в обычном текстовом файле. Круто то, что программа является портативной, а значит, её не надо устанавливать на ПК. Просто запустите загруженный файл приложения и просмотрите отчёты о сбоях.Скачать


Теги:
Windows
BlueScreenView
WhoCrashed
Windbg
AppCrashView
WinCrashReport

Понравилась статья? Поделить с друзьями:
  • Проверка грин карты выдает ошибку
  • Проверка грамм ошибок
  • Проверка гибридной системы приус 30 ошибка что делать
  • Проверка вызова sip udp ошибка мегафон
  • Проверка всего сайта на орфографические ошибки