.dml_flow (Unasemmble with Links)
Der Befehl .dml_flow zeigt einen disassemblierten Codeblock an und stellt Links bereit, die Sie zum Erstellen eines Codeflussdiagramms verwenden können.
.dml_flow Start Target
Parameter
Starten
Die Adresse einer Anweisung, von der aus die Zieladresse erreicht werden kann.
Ziel
Eine Adresse im zu disassemblierten Codeblock.
Hinweise
Betrachten Sie die im folgenden Beispiel gezeigte Aufrufliste.
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
...
Angenommen, Sie möchten alle Codepfade vom Anfang von nt! MiFlushSectionInternal für den Codeblock, der die Rückgabeadresse enthält. fffff800`01b3b6b4
Mit dem folgenden Befehl können Sie beginnen.
.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4
Die Ausgabe im Fenster Befehlsbrowser ist in der folgenden Abbildung dargestellt.
Die obige Abbildung zeigt den Codeblock, der die Zieladresse enthält. fffff800`01b3b6b4
Oben im Bild befindet sich nur ein Link (fffff800`01b3b681
). Dies gibt an, dass es nur einen Codeblock gibt, von dem aus der aktuelle Codeblock erreicht werden kann. Wenn Sie auf den Link klicken, sehen Sie, dass der Codeblock disassembliert ist. Außerdem werden Links angezeigt, mit denen Sie das Codeflussdiagramm weiter untersuchen können.
Die beiden Links am unteren Rand der vorherigen Abbildung geben an, dass zwei Codeblöcke vorhanden sind, die vom aktuellen Codeblock aus erreicht werden können.