!stacks

!stacks 扩展显示有关内核堆栈的信息。

语法

!stacks [Detail [FilterString]] 

参数

细节
指定要在显示中使用的详细信息级别。 下表列出了 Detail 的有效值。

0

显示当前内核堆栈的摘要。 这是默认值。

1

显示当前分页的堆栈以及当前内核堆栈。

2

显示所有堆栈的所有参数,以及当前分页的堆栈和当前内核堆栈。

FilterString
仅显示包含符号中指定子字符串的线程。

DLL

Kdexts.dll

其他信息

有关内核堆栈对象的信息,请参阅 Mark Russinovich 和 David Solomon 编写的 Microsoft Windows 内部资料

注解

!stacks 扩展简要概述了每个线程的状态。 可以使用此扩展来代替 !process 扩展,以快速了解系统,尤其是在调试多线程问题(如资源冲突或死锁)时。

!findstack 用户模式扩展还显示有关特定堆栈的信息。

下面是最简单的 !stacks 显示示例:

kd> !stacks 0
Proc.Thread  .Thread  ThreadState  Blocker
                                     [System]
   4.000050  827eea10  Blocked    +0xfe0343a5

                                     [smss.exe]

                                     [csrss.exe]
  b0.0000a8  82723b70  Blocked    ntoskrnl!_KiSystemService+0xc4
  b0.0000c8  82719620  Blocked    ntoskrnl!_KiSystemService+0xc4
  b0.0000d0  827d5d50  Blocked    ntoskrnl!_KiSystemService+0xc4
.....

第一列显示进程 ID 和线程 ID(用句点分隔)。

第二列是线程的 ETHREAD 块的当前地址。

第三列显示线程的状态(已初始化、就绪、正在运行、备用、已终止、转换或被阻止)。

第四列显示线程堆栈上的顶部地址。

下面是较为详细的 !stacks 输出示例:

kd> !stacks 1
Proc.Thread  .Thread  ThreadState  Blocker
                                     [System]
   4.000008  827d0030  Blocked    ntoskrnl!MmZeroPageThread+0x66
   4.000010  827d0430  Blocked    ntoskrnl!ExpWorkerThread+0x189
   4.000014  827cf030  Blocked    Stack paged out
   4.000018  827cfda0  Blocked    Stack paged out
   4.00001c  827cfb10  Blocked    ntoskrnl!ExpWorkerThread+0x189
.....
                                     [smss.exe]
  9c.000098  82738310  Blocked    Stack paged out
  9c.0000a0  826a5190  Blocked    Stack paged out
  9c.0000a4  82739d30  Blocked    Stack paged out

                                     [csrss.exe]
  b0.0000bc  826d0030  Blocked    Stack paged out
  b0.0000b4  826c9030  Blocked    Stack paged out
  b0.0000a8  82723b70  Blocked    ntoskrnl!_KiSystemService+0xc4
.....

kd> !stacks 2
Proc.Thread  .Thread  ThreadState  Blocker
                                     [System]
   4.000008  827d0030  Blocked    ntoskrnl!KiSwapThread+0xc5
                                  ntoskrnl!KeWaitForMultipleObjects+0x2b4
                                  ntoskrnl!MmZeroPageThread+0x66
                                  ntoskrnl!Phase1Initialization+0xd82
                                  ntoskrnl!PspSystemThreadStartup+0x4d
                                  ntoskrnl!CreateSystemRootLink+0x3d8
                                  +0x3f3f3f3f
   4.000010  827d0430  Blocked    ntoskrnl!KiSwapThread+0xc5
                                  ntoskrnl!KeRemoveQueue+0x191
.....