.dml_flow (Unasemmble con collegamenti)
Il comando .dml_flow visualizza un blocco di codice smontato e fornisce collegamenti che è possibile usare per costruire un grafico del flusso di codice.
.dml_flow Start Target
Parametri
Iniziare
Indirizzo di un'istruzione da cui è possibile raggiungere l'indirizzo di destinazione.
Bersaglio
Indirizzo nel blocco di codice da disassemblare.
Commenti
Si consideri lo stack di chiamate illustrato nell'esempio seguente.
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
...
Si supponga di voler esaminare tutti i percorsi di codice dall'inizio di nt! MiFlushSectionInternal al blocco di codice che contiene l'oggettodress restituito, fffff800`01b3b6b4
. Il comando seguente viene avviato.
.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4
L'output, nella finestra Del browser comandi, viene visualizzato nell'immagine seguente.
L'immagine precedente mostra il blocco di codice che contiene l'indirizzo di destinazione, fffff800`01b3b6b4
. Nella parte superiore dell'immagine è presente un solo collegamento (fffff800`01b3b681
). Ciò indica che è possibile raggiungere un solo blocco di codice da cui è possibile raggiungere il blocco di codice corrente. Se si fa clic sul collegamento, si noterà che il blocco di codice è stato disassemblato e verranno visualizzati collegamenti che consentono di esplorare ulteriormente il grafico del flusso di codice.
I due collegamenti nella parte inferiore dell'immagine precedente indicano che sono disponibili due blocchi di codice che possono essere raggiunti dal blocco di codice corrente.