!Stack
Die Erweiterung !stacks zeigt Informationen über die Kernel-Stacks an.
Syntax
!stacks [Detail [FilterString]]
Parameter
Detail
Gibt den Detaillierungsgrad an, der für die Anzeige verwendet werden soll. In der folgenden Tabelle sind die gültigen Werte für Detail aufgeführt.
0 |
Zeigt eine Zusammenfassung der aktuellen Kernel-Stacks an. Dies ist der Standardwert. |
1 |
Zeigt die Stack an, die derzeit ausgelagert sind, sowie die aktuellen Kernel-Stack. |
2 |
Zeigt die vollständigen Parameter für alle Stack sowie die Stack, die derzeit ausgelagert sind, und die aktuellen Kernel-Stack an. |
FilterString
Zeigt nur Threads an, die die angegebene Teilzeichenkette in einem Symbol enthalten.
DLL
Kdexts.dll
Zusätzliche Informationen
Informationen über Kernel-Stacks finden Sie unter Microsoft Windows Internals von Mark Russinovich und David Solomon.
Hinweise
Die Erweiterung !stacks gibt einen kurzen Überblick über den Status jedes Threads. Sie können diese Erweiterung anstelle der Erweiterung !process verwenden, um einen schnellen Überblick über das System zu erhalten, insbesondere beim Debuggen von Multithread-Problemen wie Ressourcenkonflikten oder Deadlocks.
Die Benutzermoduserweiterung !findstack zeigt auch Informationen über bestimmte Stack an.
Hier ist ein Beispiel für die einfachste Anzeige !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
.....
Die erste Spalte zeigt die Prozess-ID und die Thread-ID (getrennt durch einen Punkt).
Die zweite Spalte ist die aktuelle Adresse des ETHREAD-Blocks des Threads.
Die dritte Spalte zeigt den Status des Threads (initialisiert, bereit, in Betrieb, im Standby, beendet, Übergang oder blockiert).
Die vierte Spalte zeigt die oberste Adresse auf dem Stack des Threads.
Hier sind Beispiele für detailliertere !stacks-Ausgaben:
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
.....