Анализ дампов с стоп кодом 0x124: WHEA_UNCORRECTABLE_ERROR

Данный стоп код означает, что произошла ошибка на аппаратном уровне. Он является более информативным по сравнению с стоп кодом 0x9c, который выводился при аппаратных проблемах в ОС младше Windows Vista.

Параметр 1 определяет тип ошибки, а второй параметр указывает на структуру WHEA_ERROR_RECORD, которая содержит детальную информацию об ошибке. Данный стоп код тесно связан с Windows Hardware Error Architecture (введение на английском можно почитать здесь). Вкратце смысл этой архитектуры сводится к том, что в системах младше Windows Vista при возникновении аппаратной ошибки выводился синий экран, с некоторой дополнительной информацией. Обычно, этой информации было недостаточно для того, чтобы можно было установить причину ошибки. Новая архитектура WHEA (которая появилась начиная с Windows Vista), вместе с поддержкой от производителей аппаратных средств, позволяет:

  • позволяет получить более подробную информацию об ошибке, что помогает установить причину;
  • предоставляет механизмы самовосстановления в случае некритических ошибок (вместо генерации BSOD) и т.д.

Рассмотрим анализ дампа памяти с этим стоп кодом в Windbg.

Анализ дампа !analyze –v показывает следующее

Use !analyze -v to get detailed debugging information.

BugCheck 124, {0, fffffa80054b18f8, 0, 0}

Probably caused by : AuthenticAMD

Followup: MachineOwner
———

2: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

WHEA_UNCORRECTABLE_ERROR (124)
A fatal hardware error has occurred. Parameter 1 identifies the type of error
source that reported the error. Parameter 2 holds the address of the
WHEA_ERROR_RECORD structure that describes the error conditon.
Arguments:
Arg1: 0000000000000000, Machine Check Exception
Arg2: fffffa80054b18f8, Address of the WHEA_ERROR_RECORD structure.
Arg3: 0000000000000000, High order 32-bits of the MCi_STATUS value.
Arg4: 0000000000000000, Low order 32-bits of the MCi_STATUS value.

Debugging Details:
——————

BUGCHECK_STR:  0x124_AuthenticAMD

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN7_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  0

ANALYSIS_VERSION: 6.3.9600.16384 (debuggers(dbg).130821-1623) amd64fre

STACK_TEXT: 
fffff880`0316f6f0 fffff800`02d19a89 : fffffa80`054b18d0 fffffa80`03a03680 fffff8a0`0000001b 00000000`00000001 : nt!WheapCreateLiveTriageDump+0x6c
fffff880`0316fc10 fffff800`02bfb547 : fffffa80`054b18d0 fffff800`02c745f8 fffffa80`03a03680 00000002`00000005 : nt!WheapCreateTriageDumpFromPreviousSession+0x49
fffff880`0316fc40 fffff800`02b63b95 : fffff800`02cd6360 fffffa80`0496ee68 fffffa80`0496ee60 fffffa80`03a03680 : nt!WheapProcessWorkQueueItem+0x57
fffff880`0316fc80 fffff800`02ade161 : fffff880`01062e00 fffff800`02b63b70 fffffa80`03a03680 00000000`0000055a : nt!WheapWorkQueueWorkerRoutine+0x25
fffff880`0316fcb0 fffff800`02d74166 : 0015ad20`0015ad70 fffffa80`03a03680 00000000`00000080 fffffa80`0396e890 : nt!ExpWorkerThread+0x111
fffff880`0316fd40 fffff800`02aaf486 : fffff880`03088180 fffffa80`03a03680 fffff880`03093040 0015ad48`00000000 : nt!PspSystemThreadStartup+0x5a
fffff880`0316fd80 00000000`00000000 : fffff880`03170000 fffff880`0316a000 fffff880`037d6540 00000000`00000000 : nt!KiStartSystemThread+0x16

STACK_COMMAND:  kb

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: AuthenticAMD

IMAGE_NAME:  AuthenticAMD

DEBUG_FLR_IMAGE_TIMESTAMP:  0

IMAGE_VERSION: 

FAILURE_BUCKET_ID:  X64_0x124_AuthenticAMD_PROCESSOR_BUS_PRV

BUCKET_ID:  X64_0x124_AuthenticAMD_PROCESSOR_BUS_PRV

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:x64_0x124_authenticamd_processor_bus_prv

FAILURE_ID_HASH:  {78c2f422-5335-4ef3-5cef-a28518da5023}

Followup: MachineOwner
———

 

Обращаем внимание, что параметр 1 равен 0x0, что означает “A machine check exception occurred.”

Очень важным параметром является параметр 2, который указывает на структуру WHEA_ERROR_RECORDWHEA_ERROR_RECORD.

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

Вот что мы получаем.

 

2: kd>  !errrec fffffa80054b18f8
===============================================================================
Common Platform Error Record @ fffffa80054b18f8
——————————————————————————-
Record Id     : 01cfde4cef27c727
Severity      : Fatal (1)
Length        : 928
Creator       : Microsoft
Notify Type   : Machine Check Exception
Timestamp     : 10/2/2014 14:27:16 (UTC)
Flags         : 0x00000002 PreviousError

===============================================================================
Section 0     : Processor Generic
——————————————————————————-
Descriptor    @ fffffa80054b1978
Section       @ fffffa80054b1a50
Offset        : 344
Length        : 192
Flags         : 0x00000001 Primary
Severity      : Fatal

Proc. Type    : x86/x64
Instr. Set    : x64
Error Type    : BUS error
Operation     : Generic
Flags         : 0x00
Level         : 3
CPU Version   : 0x0000000000600f12
Processor ID  : 0x0000000000000000

===============================================================================
Section 1     : x86/x64 Processor Specific
——————————————————————————-
Descriptor    @ fffffa80054b19c0
Section       @ fffffa80054b1b10
Offset        : 536
Length        : 128
Flags         : 0x00000000
Severity      : Fatal

Local APIC Id : 0x0000000000000000
CPU Id        : 12 0f 60 00 00 08 06 00 — 0b 22 98 16 ff fb 8b 17
                00 00 00 00 00 00 00 00 — 00 00 00 00 00 00 00 00
                00 00 00 00 00 00 00 00 — 00 00 00 00 00 00 00 00

Proc. Info 0  @ fffffa80054b1b10

===============================================================================
Section 2     : x86/x64 MCA
——————————————————————————-
Descriptor    @ fffffa80054b1a08
Section       @ fffffa80054b1b90
Offset        : 664
Length        : 264
Flags         : 0x00000000
Severity      : Fatal

Error         : BUSLG_GENERIC_ERR_*_TIMEOUT_ERR (Proc 0 Bank 0)
  Status      : 0xb880000000020f0f

Секция 0 указывает на ошибку связанную с процессором. Также в ней указан тип ошибки:

Error Type    : BUS error

В секции 2 дано описание ошибки — BUSLG_GENERIC_ERR_*_TIMEOUT_ERR (Proc 0 Bank 0). Bank 0 – указывает на банк памяти с номером 0, что указывает на то, что возникли проблемы взаимодействия между памятью и одним из аппаратных устройств (процессор, видеокарта и т.д.).

Рекомендации по устранению, аналогичны при проблемах с памятью (тест, убирание разгонов и т.д.)

Спасибо за внимание, удачи.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *