Linux中进程使用的内存页面

时间:2011-12-14 19:43:52

标签: c linux gcc mmap

我希望在运行时获取Linux进程中所有映射页面(已分配内存)的列表。我怎么能这样做?

3 个答案:

答案 0 :(得分:9)

在流程内部,在Linux上,您可以阅读并解析/proc/self/maps;试试cat /proc/self/maps,它会显示运行cat

的流程的内存映射

从另一个流程,对于pid 1234流程的地图,您可以阅读/proc/1234/maps

还有/proc/self/smaps等。

Linux特定的dladdr函数有时也很有用。

如果您担心真正在RAM中的页面,请使用mincore& msync

答案 1 :(得分:3)

您可以使用/proc/[PID]/maps

答案 2 :(得分:1)

/proc/$your_pid/maps并检查/proc/$your_pid中的其他文件,它们也可能有用