当我使用该命令时cat /proc/<pid>/pagemap
,我没有得到任何输出。通常我会得到一些二进制输出,但现在我一开始什么也没有得到。
输入命令后一小时左右就会出现输出cat /proc/<pid>/pagemap
。我尝试了不同的内核版本但问题仍然存在。
答案1
/proc/[pid]/pagemap
是一个虚拟文件,具有 2 25、 64 位宽的页面条目。对于给定程序,大多数条目将为 0x00000000。您的方法有两个问题cat /proc/[pid]/pagemap
:
- 打印这样的文件需要花费大量的时间。
- 该文件由非 ASCII 可打印字符的条目组成。
我们可以通过以下方式解决上述问题:
- 用于获取虚拟地址并在文件
/proc/[pid]/maps
中查找位置。pagemap
- 使用 hexdump 而不是 cat 来打印条目。
您可以参考查看进程的页表有关相同内容的更详细的研究。