!running
!running 扩展显示目标计算机所有处理器上正在运行的线程的列表。
!running [-i] [-t]
参数
-我
使显示也包括空闲处理器。
-t
使每个处理器显示一个堆栈跟踪。
DLL
Kdexts.dll
其他信息
有关调试多处理器计算机的详细信息,请参阅多处理器语法。
注解
没有选项,!running 将显示所有活动处理器和所有空闲处理器的相关性。 对于所有活动处理器,还会显示进程控制块(PRCB)中的当前和下一个线程字段以及 16 个内置排队自旋锁的状态。
下面是多处理器 Itanium 系统的示例:
0: kd> !running
System Processors 3 (affinity mask)
Idle Processors 0
Prcb Current Next
0 e0000000818f8000 e0000000818f9e50 e0000000866f12f0 ................
1 e000000086f16010 e00000008620ebe0 e000000086eddbc0 .O..............
每行末尾的 16 个字符表示内置的排队自旋锁(PRCB 中的 LockQueue 条目)。 句点( . )表示锁未使用,O 表示此处理器拥有该锁,W 表示处理器已排队等待锁。 若要查看有关自旋锁队列的详细信息,请使用 !qlocks。
下面是显示活动处理器和空闲处理器及其堆栈跟踪的示例:
0: kd> !running -it
System Processors f (affinity mask)
Idle Processors f
All processors idle.
Prcb Current Next
0 ffdff120 805495a0 ................
ChildEBP RetAddr
8053e3f0 805329c2 nt!RtlpBreakWithStatusInstruction
8053e3f0 80533464 nt!_KeUpdateSystemTime+0x126
ffdff980 ffdff980 nt!KiIdleLoop+0x14
1 f87e0120 f87e2e60 ................
ChildEBP RetAddr
f87e0980 f87e0980 nt!KiIdleLoop+0x14
2 f87f0120 f87f2e60 ................
ChildEBP RetAddr
f87f0980 f87f0980 nt!KiIdleLoop+0x14
3 f8800120 f8802e60 ................
ChildEBP RetAddr
f8800980 f8800980 nt!KiIdleLoop+0x14