我遇到一个问题,运行 citrix 的 VM 服务器 2008 R2 SP1 随机崩溃,在事件日志中我发现以下内容:
计算机已从错误检测中重新启动。错误检测为:0x0000003b (0x00000000c0000005, 0xfffff9600008744d, 0xfffff88007ba3de0, 0x0000000000000000)..
知道是什么原因造成的吗?
以下是调试结果:
这是来自 Bugcehck 的信息:Bugcheck 分析 * * *
SYSTEM_SERVICE_EXCEPTION (3b) 执行系统服务例程时发生异常。参数:Arg1:00000000c0000005,导致错误检测的异常代码 Arg2:fffff9600008744d,导致错误检测的指令的地址 Arg3:fffff88007ba3de0,导致错误检测的异常的上下文记录的地址 Arg4:0000000000000000,零。
调试细节:
转储文件中不存在页面 125923。输入“.hh dbgerr004”了解详细信息
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx 处的指令引用了 0x%08lx 处的内存。该内存不能是 %s。
FAULTING_IP:win32k!xxxInternalInvalidate+7d fffff960`0008744d f6473208 测试字节 ptr [rdi+32h],8
上下文:fffff88007ba3de0——(.cxr 0xfffff88007ba3de0)rax=000000000000000 rbx=0000000000010485 rcx=0000000000000000 rdx=0000000000000b02 rsi=000000000000000 rdi=000000000000000 rip=fffff9600008744d rsp=fffff88007ba47c0 rbp=000000000000000 r8=0000000000010485 r9=000000000000000 r10=fffff900000004c0 r11=fffff900c26eac30 r12=000000000000000 r13=0000000000000001 r14=0000000000000000 r15=000000000000000 iopl=0 nv up ei pl zr na po nc cs=0010 ss=0018 ds=002b es=002b fs=0053 gs=002b efl=00010246 win32k!xxxInternalInvalidate+0x7d: fffff960 0008744d f6473208 test byte ptr [rdi+32h],8 ds:002b:00000000
00000032=??重置默认范围
默认存储桶 ID:WIN7_DRIVER_FAULT
BUGCHECK_STR: 0x3B
进程名称:csrss.exe
当前 IRQL: 0
LAST_CONTROL_TRANSFER:从 fffff960001351a2 到 fffff9600008744d
STACK_TEXT:
fffff880 07ba47c0 fffff960
001351a2:00000000 00000000 00000000
00000040 fffffa80 0678d330 00000000
00000000:win32k!xxxInternalInvalidate + 0x7d fffff880 07ba4840 fffff960
001352a2:fffffa80 0678d330 00000000
00000000 fffff880 07ba4ca0 fffffa80
06109ab0:win32k!xxxInternalUserChangeDisplaySettings + 0x486 fffff880 07ba4900 fffff960
001330e3:00000000 00000000 00000000
00000000 fffff900 c0f9ead0 fffff900
00000040:win32k!xxxUserChangeDisplaySettings + 0x92 fffff880 07ba49f0 fffff960
00115cba:00000000 00000001 00000000
00aff960 00000000 00000000 ffffffff
ffffffff : win32k!xxxRemoteReconnect+0x6d7 fffff880 07ba4bf0 fffff800
016d9ed3 : fffffa80 06f66b00 fffff880
07ba4ca0 00000000 00000000 00000000
00000000 : win32k!NtUserCallOneParam+0x4e fffff880 07ba4c20 000007fe
fd1b2aea : 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 : nt!KiSystemServiceCopyEnd+0x13 00000000 00aff918 00000000
00000000 : 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 : 0x000007fe`fd1b2aea
FOLLOWUP_IP:win32k!xxxInternalInvalidate+7d fffff960`0008744d f6473208 测试字节 ptr [rdi+32h],8
符号堆栈索引: 0
符号名称:win32k!xxxInternalInvalidate+7d
FOLLOWUP_NAME:机器所有者
模块名称: win32k
图像名称: win32k.sys
调试FLR_IMAGE_TIMESTAMP:50e64bda
堆栈命令:.cxr 0xfffff88007ba3de0;kb
FAILURE_BUCKET_ID:X64_0x3B_win32k!xxxInternalInvalidate+7d
BUCKET_ID:X64_0x3B_win32k!xxxInternalInvalidate+7d
后续:MachineOwner
答案1
您必须调试转储文件才能确定发生了什么。我猜测是驱动程序导致了坏页。这篇文章如何:调试内存转储(找出导致 BSOD 的原因)有一份非常好的分步指南,教你如何使用 dumpchk 查看导致 BSOD 的原因