我的windows 2008 server (datacenter edition) 64bit,最近在不同的应用上创建了一系列的蓝屏。错误信息是一般的EXCEPTION_DOUBLE_FAULT
。
任何人都可以帮助分析下面的转储文件吗?
2: kd>!分析-v ****************************************************** ***************************** * * *错误检查分析* * * ****************************************************** ***************************** UNEXPECTED_KERNEL_MODE_TRAP (7f) 这意味着在内核模式中发生了一个陷阱,它是一种陷阱 不允许内核拥有/捕获(绑定陷阱)或 总是立即死亡(双重错误)。中的第一个数字 bugcheck 参数是陷阱的数量(8 = 双重错误等) 请查阅 Intel x86 系列手册以了解有关这些内容的更多信息 陷阱是。这是这些代码的*部分*: 如果 kv 显示 taskGate 在冒号之前的部分使用 .tss,然后是 kv。 否则,如果 kv 显示陷阱框 在该值上使用 .trap 别的 .trap 在适当的框架上将显示陷阱的位置 (在 x86 上,这将是 KiTrap 程序附带的 ebp) 万一 然后 kb 将显示更正后的堆栈。 论据: Arg1:0000000000000008,EXCEPTION_DOUBLE_FAULT Arg2:0000000080050033 Arg3:00000000000006f8 Arg4: fffff800018b1678 调试细节: ------------------ BUGCHECK_STR:0x7f_8 CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID:DRIVER_FAULT_SERVER_MINIDUMP PROCESS_NAME:客户服务。 当前_IRQL:1 EXCEPTION_RECORD: fffffa6004e45568 -- (.exr 0xfffffa6004e45568) 异常地址:fffff800018a0150 (nt!RtlVirtualUnwind+0x0000000000000250) 异常代码:10000004 异常标志:00000000 数量参数:2 参数[0]:0000000000000000 参数[1]:00000000000000d8 TRAP_FRAME: fffffa6004e45610 -- (.trap 0xfffffa6004e45610) 注意:陷阱帧不包含所有寄存器。 某些寄存器值可能为零或不正确。 rax=0000000000000050 rbx=0000000000000000 rcx=0000000000000004 rdx=00000000000000d8 rsi=0000000000000000 rdi=0000000000000000 撕裂=fffff800018a0150 rsp=fffffa6004e457a0 rbp=fffffa6004e459e0 r8=0000000000000006 r9=fffff8000181e000 r10=ffffffffffffff88 r11=fffff80001a1c000 r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 iopl=0 nv up 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 : nt!KiBugCheckDispatch+0x6e fffffa60`01768bb0 fffff800`018b1678 : 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`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 : nt!KiDispatchException+0xc2 堆栈命令:kb FOLLOWUP_IP: nt!KiDoubleFaultAbort+b8 fffff800`01876a38 90 无 SYMBOL_STACK_INDEX:2 SYMBOL_NAME: nt!KiDoubleFaultAbort+b8 FOLLOWUP_NAME:机器所有者 模块名称:nt IMAGE_NAME:ntkrnlmp.exe DEBUG_FLR_IMAGE_TIMESTAMP:4a7801eb FAILURE_BUCKET_ID: X64_0x7f_8_nt!KiDoubleFaultAbort+b8 BUCKET_ID: X64_0x7f_8_nt!KiDoubleFaultAbort+b8 跟进:MachineOwner ---------
问题是,当内核处理一个异常时,它遇到了第二个异常。在这种情况下,它在遇到第二个页面错误时正在处理页面错误。这很可能是堆栈溢出。
在 windbg 中加载 dmp 文件并运行以下命令:
这将产生违规线程的堆栈跟踪。请在此处发布堆栈。