.dml_flow (无法与链接)
.dml_flow命令會顯示反組譯碼區塊,並提供可用來建構程式代碼流程圖的連結。
.dml_flow Start Target
參數
開始
可從中觸達目標位址的指示位址。
目標
要反組譯之程式代碼區塊中的位址。
備註
請考慮下列範例所示的呼叫堆疊。
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
...
假設您想要檢查 nt 開頭的所有程式代碼路徑!MiFlushSectionInternal 至包含傳回 adress 的程式代碼區塊。 fffff800`01b3b6b4
下列命令會讓您啟動。
.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4
在 [命令瀏覽器] 視窗中的輸出會顯示在下圖中。
上圖顯示包含目標地址的程式代碼區塊。 fffff800`01b3b6b4
影像頂端只有一個連結 (fffff800`01b3b681
) 。 這表示只有一個程式代碼區塊可以連線到目前的程式代碼區塊。 如果您按下連結,您會看到程式代碼區塊反組譯碼,您會看到可讓您進一步探索程式碼流程圖的連結。
上圖底部的兩個連結表示有兩個可從目前程式代碼區塊到達的程式代碼區塊。