!stacks
L’extension !stacks affiche des informations sur les piles du noyau.
Syntaxe
!stacks [Detail [FilterString]]
Paramètres
Détail
Spécifie le niveau de détail à utiliser dans l’affichage. Le tableau suivant répertorie les valeurs valides pour Details.
0 |
Affiche un résumé des piles actuelles du noyau. Il s’agit de la valeur par défaut. |
1 |
Affiche les piles qui sont actuellement paginées, ainsi que les piles actuelles du noyau. |
2 |
Affiche les paramètres complets de toutes les piles, ainsi que les piles actuellement paginées et les piles actuelles du noyau. |
FilterString
Affiche uniquement les threads qui contiennent la sous-chaîne spécifiée dans un symbole.
DLL
Kdexts.dll
Informations supplémentaires
Pour plus d’informations sur les piles du noyau, veuillez consulter Microsoft Windows Internals (Au cœur de Windows), de Mark Russinovich et David Solomon.
Notes
L’extension !stacks donne un bref résumé de l’état de chaque thread. Vous pouvez utiliser cette extension à la place de l'extension !process pour obtenir une vue d’ensemble rapide du système, en particulier lors du débogage de problèmes multithreads tels que des conflits de ressources ou des blocages.
L’extension !findstack en mode utilisateur affiche également des informations sur des piles particulières.
Voici un exemple de l'affichage le plus simple de !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
.....
La première colonne affiche l’ID de processus et l’ID de thread (séparés par un point).
La deuxième colonne affiche l’adresse actuelle du bloc ETHREAD du thread.
La troisième colonne affiche l’état du thread (initialisé, prêt, en cours d’exécution, en attente, arrêté, transition ou bloqué).
La quatrième colonne affiche l’adresse supérieure de la pile du thread.
Voici des exemples de sortie !stacks plus détaillées :
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
.....