!stacks

!stacks 拡張機能は、カーネル スタックに関する情報を表示します。

構文

!stacks [Detail [FilterString]] 

パラメーター

Detail
表示に使用する詳細レベルを指定します。 次の表に、Detail の有効な値を示します。

0

現在のカーネル スタックの概要を表示します。 これが既定値です。

1

現在ページ アウトされているスタックと、現在のカーネル スタックを表示します。

2

現在ページ アウトされているスタックと現在のカーネル スタックに加え、すべてのスタックの完全なパラメーターが表示されます。

FilterString
指定した部分文字列をシンボルに含むスレッドのみを表示します。

DLL

Kdexts.dll

追加情報

カーネル スタックについては、『Microsoft Windows Internals』(Mark Russinovich および David Solomon 共著) を参照してください。

解説

!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 (ピリオド区切り) が表示されます。

2 番目の列は、スレッドの ETHREAD ブロックの現在のアドレスです。

3 番目の列には、スレッドの状態 (初期化、準備完了、実行中、スタンバイ、終了、遷移、またはブロック) が表示されます。

4 番目の列には、スレッドのスタックの一番上のアドレスが表示されます。

より詳細な !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
.....