4

我需要获取当前应用程序的所有内存映射库的文件名。目前我正在通过 vm_region 浏览所有映射库。遗憾的是,它没有提供有关当前区域文件名的信息。有没有办法在 c 中获取此信息而无需在 vmmap 上执行 popen ?

4

1 回答 1

1
  • 对于常规mmap-ed 文件,您可以使用 proc_regionfilename()
    • 请注意,您必须为其提供一个 MAX_PATH 大小的缓冲区。
    • 在苹果的 libc - libproc.c中实现,底层系统调用是proc_info
  • 对于来自 dyld_shared_cache 的库,您将获得“/private/var/db/dyld/dyld_shared_cache_x86_64”作为路径,并且需要找到实际的库名称。
于 2013-06-18T23:23:01.800 回答