BSOD 转储 - EXCEPTION_DOUBLE_FAULT - Windows 2008 Server 64 位上

BSOD 转储 - EXCEPTION_DOUBLE_FAULT - Windows 2008 Server 64 位上

我的 Windows 2008 Server(数据中心版)64 位,最近在不同的应用程序上产生了一系列 BSOD。错误消息一般是EXCEPTION_DOUBLE_FAULT

有人可以帮忙分析下面的转储文件吗?

分析-v
*******************************************************************************************
* *
* 错误检测分析 *
* *
*******************************************************************************************

意外内核模式陷阱 (7f)
这意味着内核模式中发生了一个陷阱,这是一种陷阱
内核不允许捕获(绑定陷阱)或
总是立即死亡(双重失误)。
bugcheck params 是陷阱的编号(8 = 双重故障等)
查阅 Intel x86 家族手册,详细了解这些
陷阱。以下是这些代码的一部分:
如果 kv 显示 taskGate
        在冒号之前的部分使用 .tss,然后使用 kv。
否则,如果 kv 显示一个陷阱框架
        对该值使用 .trap
别的
        相应框架上的 .trap 将显示陷阱的位置
        (在 x86 上,这将是与 KiTrap 程序一起使用的 ebp)
万一
kb 将显示更正后的堆栈。
参数:
Arg1:0000000000000008,EXCEPTION_DOUBLE_FAULT
参数2:0000000080050033
参数 3:00000000000006f8
Arg4:fffff800018b1678

调试细节:
------------------


BUGCHECK_STR: 0x7f_8

客户崩溃次数:1

默认存储桶 ID:DRIVER_FAULT_SERVER_MINIDUMP

进程名称:客户服务。

当前 IRQL: 1

异常记录:fffffa6004e45568——(.exr 0xfffffa6004e45568)
异常地址:fffff800018a0150(nt!RtlVirtualUnwind+0x0000000000000250)
   异常代码:10000004
  异常标志:00000000
数量参数:2
   参数[0]:00000000000000000
   参数[1]: 00000000000000d8

TRAP_FRAME:fffffa6004e45610——(.trap 0xfffffa6004e45610)
注意:陷阱框架不包含所有寄存器。
一些寄存器值可能为零或者不正确。
rax=0000000000000050 rbx=0000000000000000 rcx=0000000000000004
rdx=00000000000000d8 rsi=0000000000000000 rdi=0000000000000000
rip=fffff800018a0150 rsp=fffffa6004e457a0 rbp=fffffa6004e459e0
 r8=0000000000000006 r9=fffff8000181e000 r10=ffffffffffffff88
r11=fffff80001a1c000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv 向上 ei pl zr na po nc
nt!RtlVirtualUnwind + 0x250:
fffff800`018a0150 488b02 mov rax,qword ptr [rdx] ds:00000000`000000d8=????????????????
重置默认范围

LAST_CONTROL_TRANSFER:从 fffff800018781ee 到 fffff80001878450

堆栈文本:  
fffffa60`01768a68 fffff800`018781ee : 00000000`0000007f 00000000`00000008 00000000`80050033 00000000`000006f8 : nt!KeBugCheckEx
fffffa60`01768a70 fffff800`01876a38 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiBugCheckDispatch+0x6e
fffffa60`01768bb0 fffff800`018b1678 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiDoubleFaultAbort+0xb8
fffffa60`04e44e30 fffff800`018782a9 : fffffa60`04e45568 00000000`00000001 fffffa60`04e45610 00000000`0000023b : nt!KiDispatchException+0x34
fffffa60`04e45430 fffff800`018770a5 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000001 : nt!KiExceptionDispatch+0xa9
fffffa60`04e45610 fffff800`018a0150 : fffffa60`04e46638 fffffa60`04e46010 fffff800`01965190 fffff800`0181e000 : nt!KiPageFault+0x1e5
fffffa60`04e457a0 fffff800`018a3f78 : fffffa60`00000001 00000000`00000000 00000000`00000000 ffffffff`ffffff88 : nt!RtlVirtualUnwind+0x250
fffffa60`04e45810 fffff800`018b1706 : fffffa60`04e46638 fffffa60`04e46010 fffffa60`00000000 00000000`00000000 : nt!RtlDispatchException+0x118
fffffa60`04e45f00 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiDispatchException+0xc2

堆栈命令:kb
关注IP:
nt!KiDoubleFaultAbort+b8
fffff800`01876a38 90 没有
符号堆栈索引: 2
符号名称:nt!KiDoubleFaultAbort+b8
FOLLOWUP_NAME:机器所有者
模块名称:nt
图像名称:ntkrnlmp.exe
调试_FLR_IMAGE_时间戳:4a7801eb
故障存储桶 ID:X64_0x7f_8_nt!KiDoubleFaultAbort+b8
BUCKET_ID:X64_0x7f_8_nt!KiDoubleFaultAbort + b8
后续:MachineOwner
---------

答案1

问题在于,当内核正在处理一个异常时,它遇到了第二个异常。在这种情况下,它正在处理页面错误,却遇到了第二个页面错误。这很可能是堆栈溢出。

在windbg中加载dmp文件,运行以下命令:

.trap  fffffa6004e45610
k 100

这将生成有问题的线程的堆栈跟踪。请在此处发布堆栈。

相关内容