命令字: !vtop
基本功能:将虚拟地址转换为相应的物理地址,并显示其他页表和页目录信息。
基本用法:
!vtop PFN VirtualAddress
!vtop 0 VirtualAddress
参数:
DirBase
指定进程的目录基。 每个进程都有自己的虚拟地址空间。 使用 !process 扩展确定进程的目录基。
PFN
指定进程的目录基 (PFN) 页码。
0
导致 !vtop 使用当前 进程上下文 进行地址转换。
VirtualAddress
指定需要其页的虚拟地址。
用法描述
若要使用此命令,请先使用 !process 扩展来确定进程的目录基。 此目录基的 PFN) 页码 (,可以删除三个尾随十六进制零 (,换言之,将数字 12 位右移) 即可找到。
以下是示例:
由于目录基为0x098FD000,因此其 PFN 是0x098FD。
请注意尾随三个零是可选的。 !vtop 扩展显示页目录索引 (PDI) 、页表索引 (PTI) 、最初输入的虚拟地址、物理页面开头的物理地址,以及页 (PFN) (PTE) 页表项的页框号。
如果要将虚拟地址0x0012F980转换为物理地址,只需将最后三个十六进制数字 (0x980) 并将它们添加到页面 (0x09DE9000) 开头的物理地址。 这会为物理地址提供0x09DE9980。
如果忘记删除三个零,并将完整目录基传递给 !vtop 而不是 PFN,则结果通常是正确的。 这是因为! vtop 收到的数字太大而无法成为 PFN 时,它会右移 12 位并改用该数字:
但是,最好始终使用 PFN,因为某些目录基值不会以这种方式转换。
作者:李梓涌 创建时间:2023-08-08 17:26
最后编辑:李梓涌 更新时间:2024-08-07 16:18
最后编辑:李梓涌 更新时间:2024-08-07 16:18