我想使用/proc/<pid>/map
目录来获取有关进程虚拟内存的信息(特别是有关其共享库的信息)。由于mac os没有,我试图寻找其他方法。其中一个似乎是sysctl
电话,但我不太明白如何将它用于此目的。有什么例子吗?我知道它也可以通过一些mach_vm
接口调用来完成,但文档非常流畅。也许你知道其他任何阅读过程记忆的方法吗?顺便说一句,我的mac os版本是Darwin。
注意:目的是在不使用任何实用程序或fork/exec
调用的情况下执行此操作。我也不希望安装任何pseudofs
。
答案 0 :(得分:1)
MACOS&#39;虚拟内存子系统位于内核的Mach继承部分,因此这些API肯定是要使用的。要检查区域,请查看mach_vm_region()
(在原始马赫中称为vm_region
- 您将找到more documentation),为了读取内存,请使用mach_vm_read()
。
您可能还会发现vmmap
命令行实用程序对于探索非常有用。