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