!stacks
La extensión !stacks muestra información sobre las pilas de kernel.
Sintaxis
!stacks [Detail [FilterString]]
Parámetros
Detalle
Especifica el nivel de detalle que se va a utilizar en la visualización. En la tabla siguiente, se enumeran los valores válidos para Detail.
0 |
Muestra un resumen de las pilas de kernel actuales. Este es el valor predeterminado. |
1 |
Muestra las pilas que se han paginado actualmente, así como las pilas de kernel actuales. |
2 |
Muestra los parámetros completos de todas las pilas, así como las pilas que se han paginado actualmente y las pilas de kernel actuales. |
FilterString
Muestra solo los subprocesos que contienen la subcadena especificada en un símbolo.
Archivo DLL
Kdexts.dll
Información adicional
Para obtener información sobre las pilas de kernel, consulte Microsoft Windows Internals por Mark Russinovich y David Solomon.
Comentarios
La extensión !stacks proporciona un breve resumen del estado de cada subproceso. Puede usar esta extensión en lugar de la extensión !process para obtener una visión general rápida del sistema, especialmente cuando se depuran problemas multiproceso, como conflictos de recursos o interbloqueos.
La extensión de modo de usuario !findstack también muestra información sobre pilas concretas.
Este es un ejemplo de la pantalla de !stacks más sencilla:
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 primera columna muestra el identificador de proceso y el identificador de subproceso (separados por un punto).
La segunda columna es la dirección actual del bloque ETHREAD del subproceso.
La tercera columna muestra el estado del subproceso (inicializado, listo, en ejecución, en espera, terminado, con transición o bloqueado).
La cuarta columna muestra la dirección superior de la pila del subproceso.
Estos son ejemplos de salida !stacks más detalladas:
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
.....