Поделиться через


.dml_flow (unasemmble with Links)

Команда .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 для блока кода, содержащего обратный адрес , fffff800`01b3b6b4. Следующая команда позволяет приступить к работе.

.browse .dml_flow nt!MiFlushSectionInternal fffff800`01b3b6b4

Выходные данные в окне Обозревателя команд показаны на следующем рисунке.

Снимок экрана: выходные данные .dml-flow в окне обозревателя команд.

На предыдущем рисунке показан блок кода, содержащий целевой адрес , fffff800`01b3b6b4. В верхней части изображения есть только одна ссылка (fffff800`01b3b681). Это означает, что существует только один блок кода, из которого можно получить доступ к текущему блоку кода. Если щелкнуть ссылку, вы увидите, что блок кода дизассемблированно, а также ссылки, позволяющие продолжить изучение графа потока кода.

Две ссылки в нижней части предыдущего изображения указывают на то, что из текущего блока кода можно получить доступ к двум блокам кода.

См. также

Команды языка разметки отладчика

uf (функция Unasemmble)