다음을 통해 공유


.dml_flow(링크가 포함된 Unasemmble)

.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 함수)