使用/ proc / / pagemap

我知道这里有一些关于页面映射文件的信息。 但似乎没有人指出如何引用文件中的条目。 它被虚拟地址抵消了吗? 我可以采取一个虚拟的地址VA,只是为了抵消VA? 还是按页面? 如果是这样,我如何检索页码,因为地图只是按顺序列出它们。 我正试图在虚拟地址和物理地址之间进行转换,并且使用虚拟地址进行转换,因为无论我在哪里寻找,偏移总是返回相同的数字。

谢谢

@leeduhem:是的,我有。 这里是相关的部分:3.打开/ proc / pid / pagemap并寻找你想要查看的页面。 4.从页面地图的每个页面读取u64。

这并不能帮助我。 它希望我寻找页面,但是我怎么知道页面的入口在哪里?

有一个工具可以帮助你从页面文件中获得你需要的信息。

http://fivelinesofcode.blogspot.com/2014/03/how-to-translate-virtual-to-physical.html

您可以通过页面大小(通常为0x1000或4096)划分虚拟地址,并使用它在/ proc / self / pagemap中进行索引。 分割之后,这就是所谓的PFN,或页面帧号。

拉里