共用方式為


.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

[命令瀏覽器] 視窗中的輸出會顯示在下圖中。

命令瀏覽器視窗中 .dml 流程輸出的螢幕快照。

上圖顯示包含目標地址的程式代碼區塊。 fffff800`01b3b6b4 影像頂端只有一個連結 (fffff800`01b3b681) 。 這表示只有一個程式代碼區塊可以連線到目前的程式代碼區塊。 如果您按下連結,您會看到程式代碼區塊反組譯碼,您會看到可讓您進一步探索程式碼流程圖的連結。

上圖底部的兩個連結表示有兩個可從目前程式代碼區塊到達的程式代碼區塊。

另請參閱

調試程序標記語言命令

uf (未發行的函式)