在mac os下使用sysctl调用获取/ proc / <pid> / map info

时间:2017-07-25 09:08:20

标签: c macos darwin procfs sysctl

我想使用/proc/<pid>/map目录来获取有关进程虚拟内存的信息(特别是有关其共享库的信息)。由于mac os没有,我试图寻找其他方法。其中一个似乎是sysctl电话,但我不太明白如何将它用于此目的。有什么例子吗?我知道它也可以通过一些mach_vm接口调用来完成,但文档非常流畅。也许你知道其他任何阅读过程记忆的方法吗?顺便说一句,我的mac os版本是Darwin。 注意:目的是在不使用任何实用程序或fork/exec调用的情况下执行此操作。我也不希望安装任何pseudofs

1 个答案:

答案 0 :(得分:1)

MACOS&#39;虚拟内存子系统位于内核的Mach继承部分,因此这些API肯定是要使用的。要检查区域,请查看mach_vm_region()(在原始马赫中称为vm_region - 您将找到more documentation),为了读取内存,请使用mach_vm_read()

您可能还会发现vmmap命令行实用程序对于探索非常有用。