1

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

4

1 回答 1

2

macOS 的虚拟内存子系统位于内核的 Mach 继承部分中,因此这些 API 绝对是可以使用的。对于检查区域,请查看mach_vm_region()vm_region在原始 Mach 中调用 - 您会找到更多相关文档),对于读取内存,请使用mach_vm_read().

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

于 2017-07-25T12:42:13.640 回答