.dml_flow (Unasemmble with Links)

La commande .dml_flow affiche un bloc de code désassemblé et fournit des liens que vous pouvez utiliser pour construire un graphique de flux de code.

.dml_flow Start Target

Paramètres

Commencer
Adresse d’une instruction à partir de laquelle l’adresse cible peut être atteinte.

Cible
Adresse dans le bloc de code à désassembler.

Remarques

Considérez la pile des appels présentée dans l’exemple suivant.

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

Supposons que vous souhaitiez examiner tous les chemins de code depuis le début de nt ! MiFlushSectionInternal au bloc de code qui contient l’adresse de retour, fffff800`01b3b6b4. La commande suivante vous permet de démarrer.

.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4

La sortie, dans la fenêtre Explorateur de commandes, est illustrée dans l’image suivante.

Capture d’écran de la sortie .dml-flow dans la fenêtre Explorateur de commandes.

L’image précédente montre le bloc de code qui contient l’adresse cible, fffff800`01b3b6b4. Il n’y a qu’un seul lien (fffff800`01b3b681) en haut de l’image. Cela indique qu’il n’existe qu’un seul bloc de code à partir duquel le bloc de code actuel peut être atteint. Si vous cliquez sur le lien, vous verrez ce bloc de code désassemblé, et vous verrez des liens qui vous permettent d’explorer plus en détail le graphique de flux de code.

Les deux liens en bas de l’image précédente indiquent qu’il existe deux blocs de code accessibles à partir du bloc de code actuel.

Voir aussi

Commandes du langage de balisage du débogueur

uf (Unasemmble Function)