.dml_flow (no se puede agregar con vínculos)
El comando .dml_flow muestra un bloque de código desensamblado y proporciona vínculos que puede usar para construir un gráfico de flujo de código.
.dml_flow Start Target
Parámetros
Empezar
Dirección de una instrucción desde la que se puede acceder a la dirección de destino.
Objetivo
Dirección del bloque de código que se va a desensamblar.
Comentarios
Considere la pila de llamadas que se muestra en el ejemplo siguiente.
0: kd> kL
Child-SP RetAddr Call Site
fffff880`0335c688 fffff800`01b41f1c nt!IofCallDriver
fffff880`0335c690 fffff800`01b3b6b4 nt!IoSynchronousPageWrite+0x1cc
fffff880`0335c700 fffff800`01b4195e nt!MiFlushSectionInternal+0x9b8
...
Supongamos que desea examinar todas las rutas de acceso de código desde el principio de nt. MiFlushSectionInternal al bloque de código que contiene la dirección de devolución, fffff800`01b3b6b4
. El siguiente comando le ayudará a empezar.
.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4
La salida, en la ventana Explorador de comandos, se muestra en la siguiente imagen.
La imagen anterior muestra el bloque de código que contiene la dirección de destino, fffff800`01b3b6b4
. Solo hay un vínculo (fffff800`01b3b681
) en la parte superior de la imagen. Esto indica que solo hay un bloque de código desde el que se puede acceder al bloque de código actual. Si hace clic en el vínculo, verá ese bloque de código desensamblado y verá vínculos que le permiten explorar aún más el gráfico de flujo de código.
Los dos vínculos situados en la parte inferior de la imagen anterior indican que hay dos bloques de código a los que se puede acceder desde el bloque de código actual.