!Pile
L'estensione !stacks visualizza informazioni sugli stack del kernel.
Sintassi
!stacks [Detail [FilterString]]
Parametri
Dettaglio
Specifica il livello di dettaglio da utilizzare nella visualizzazione. Nella tabella seguente sono elencati i valori validi per Detail.
0 |
Visualizza un riepilogo degli stack del kernel correnti. Questo è il valore predefinito. |
1 |
Visualizza gli stack attualmente visualizzati, nonché gli stack del kernel correnti. |
2 |
Visualizza i parametri completi per tutti gli stack, nonché gli stack attualmente visualizzati e gli stack del kernel correnti. |
FilterString
Visualizza solo i thread che contengono la sottostringa specificata in un simbolo.
DLL
Kdexts.dll
Informazioni aggiuntive
Per informazioni sugli stack di kernel, vedere Microsoft Windows Internals, di Mark Russinovich e David Solomon.
Osservazioni:
L'estensione !stacks fornisce un breve riepilogo dello stato di ogni thread. È possibile usare questa estensione anziché l'estensione !process per ottenere una rapida panoramica del sistema, soprattutto quando si esegue il debug di problemi multithread, ad esempio conflitti di risorse o deadlock.
L'estensione !findstack in modalità utente visualizza anche informazioni su specifici stack.
Di seguito è riportato un esempio della visualizzazione !stack più semplice:
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
.....
La prima colonna mostra l'ID del processo e l'ID del thread (separati da un punto).
La seconda colonna è l'indirizzo corrente del blocco ETHREAD del thread.
La terza colonna mostra lo stato del thread (inizializzato, pronto, in esecuzione, standby, terminato, transizione o bloccato).
La quarta colonna mostra l'indirizzo superiore nello stack del thread.
Di seguito sono riportati esempi di output !stacks più dettagliati:
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
.....