Share via


!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
.....