Condividi tramite


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

Screenshot dell'output con estensione dml-flow nella finestra Del browser dei comandi.

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.

Vedere anche

Comandi del linguaggio di markup del debugger

uf (funzione unasemmble)