Debugging Tools for Windows |
!ptov扩展显示给定进程的整个物理地址到虚拟地址的映射(physical-to-virtual map)。
Windows 2000 | Kdextx86.dll |
Windows XP和之后 | Kdexts.dll |
下面是一个示例。首先使用!process扩展来获得需要的进程的页目录基址:
**** NT ACTIVE PROCESS DUMP ****
....
PROCESS ff779190 SessionId: 0 Cid: 04fc Peb: 7ffdf000 ParentCid: 0394
DirBase: 098fd000 ObjectTable: e1646b30 TableSize: 8.
Image: MyApp.exe
这里的页目录基址是0x098FD000。去掉末尾的三个0,结果为0x098FD。这就是页目录基址的页面帧序号(PFN)。
将这个数字传递给!ptov:
7119000 10000
a21a000 20000
6133000 12e000
9de9000 12f000
2b0c000 130000
87cd000 131000
aaf6000 140000
... ...
左边一列的数字是映射到该进程的每个内存页面的物理地址。右边一列是它们映射到的虚拟地址。
全部的输出会非常长。
相关主题,查看!vtop、!vpdd、以及将虚拟地址转换成物理地址。关于页表和页目录的信息,查看Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals。