我使用收集用户模式转储中描述的默认参数生成了一个小型转储。
当系统挂起右CTRL+SCROLL LOCK+SCROLL LOCK 因此,WinDbg在命令 当我试图切换到另一个处理器时,我得到了错误: 如何解决此错误? 什么是"单处理器内核分类转储"?如果我用谷歌搜索,我会得到3或4个结果。。。没有更多,也许微软的人可以在这里提供很大的帮助:-(。 我知道我的系统是多处理器的,WinDbg证实了这一点:[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceskbdhidParameters]
"CrashOnCtrlScroll"=dword:00000001
0: kd> !analyze -v
之后向我显示的调用堆栈是从kbdhid
设备驱动程序执行的线程之一。0: kd> ~1
Can't switch processors on a single processor kernel triage dump
CustomDumpFlags
是否有一些特定的值需要我设置?请参见MINIDUMP_TYPE枚举。0: kd> ~8
8 is not a valid processor number
0: kd> ~7
Can't switch processors on a single processor kernel triage dump
单处理器内核转储或内核分类转储是一种功能
您可以在其中收集用户模式进程的内核模式堆栈跟踪
在一台没有在iirc上使用/DEBUG从vista+启动的机器上
您也可以使用kdbgctrl 收集此转储
D:>tasklist | grep -i edge
xxxxxxxxxxxxxxxxxxxxxx
MicrosoftEdgeCP.exe 12588 Console 5 41,892 K
MicrosoftEdgeCP.exe 9152 Console 5 1,49,064 K
xxxxxxxxxxxxxx
D:>kdbgctrl -td 9152 edgy.dmp
Dump created in edgy.dmp, 1048564 bytes
D:>file edgy.dmp
edgy.dmp: MS Windows 64bit crash dump, 1018708 pages
运行!process -1 1f
命令以获取当前进程的所有线程的堆栈此转储中只有一个进程内核内存可用!进程0 0不起作用
它不是完整的内核内存转储,可能没有关于任何其他处理器堆栈以及的信息
快跑!cpuid只有关于0处理器的信息才会出现在这个转储中
0: kd> !cpuid
CP F/M/S Manufacturer MHz
0 6,142,9 GenuineIntel 2304
Unable to get information for processor 1
Unable to get information for processor 2
Unable to get information for processor 3
0: kd>
或irql
0: kd> !irql 0
Debugger saved IRQL for processor 0x0 -- 0 (LOW_LEVEL)
0: kd> !irql 1
Cannot get PRCB address from processor 0x1
0: kd> !irql 2
Cannot get PRCB address from processor 0x2
0: kd> !irql 3
Cannot get PRCB address from processor 0x3
0: kd>