Linux 使用/proc/[pid]/pagemap

Linux 使用/proc/[pid]/pagemap,linux,process,proc,Linux,Process,Proc,我知道这里有一些关于pagemap文件的信息。但似乎没有人指出如何引用文件中的条目。它是否由虚拟地址偏移?我可以用虚拟地址VA和简单的lseek来偏移VA吗?还是按页码?如果是这样,我如何检索页码,因为地图只是按顺序列出页码。我试图在虚拟地址和物理地址之间进行转换,并且无论我在哪里寻找,以虚拟地址作为偏移量的lseek'ing总是返回相同的数字 谢谢 @是的,我有。以下是相关部分: 3.打开/proc/pid/pagemap并查找要检查的页面。 4.从pagemap中读取每页的u64 这对我没有

我知道这里有一些关于pagemap文件的信息。但似乎没有人指出如何引用文件中的条目。它是否由虚拟地址偏移?我可以用虚拟地址VA和简单的lseek来偏移VA吗?还是按页码?如果是这样,我如何检索页码,因为地图只是按顺序列出页码。我试图在虚拟地址和物理地址之间进行转换,并且无论我在哪里寻找,以虚拟地址作为偏移量的lseek'ing总是返回相同的数字

谢谢

@是的,我有。以下是相关部分: 3.打开/proc/pid/pagemap并查找要检查的页面。 4.从pagemap中读取每页的u64


这对我没有帮助。它希望我搜索页面,但我如何知道页面的条目在哪里?

有一个工具可以帮助您从页面地图文件中获取所需信息


将虚拟地址除以页面大小(通常为0x1000或4096),并使用该值在/proc/self/pagemap中建立索引。在除法之后,称为PFN,或页面帧编号


Larry

您读过吗?为什么此函数中不使用
偏移量
的原因可能重复?我指的是
offset
作为
maps
entry中的第三个字段是
maps
entry
offset
是支持映射的特定文件/设备+inode的偏移量?Paschalis,我不太明白你的问题,但你是指这里的“如果交换,位5-54交换偏移量”?嗯。。。我甚至都不明白我刚才问你的问题。似乎我期望
maps
条目的
offset
用于索引pagemaps文件。