为什么 cat /proc/[pid]/pagemap 没有给出任何输出?

为什么 cat /proc/[pid]/pagemap 没有给出任何输出?

当我使用该命令时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 来打印条目。

您可以参考查看进程的页表有关相同内容的更详细的研究。

相关内容