我需要获取当前应用程序的所有内存映射库的文件名。目前我正在通过 vm_region 浏览所有映射库。遗憾的是,它没有提供有关当前区域文件名的信息。有没有办法在 c 中获取此信息而无需在 vmmap 上执行 popen ?
问问题
1045 次
1 回答
1
- 对于常规
mmap
-ed 文件,您可以使用proc_regionfilename()
- 对于来自 dyld_shared_cache 的库,您将获得“/private/var/db/dyld/dyld_shared_cache_x86_64”作为路径,并且需要找到实际的库名称。
- https://code.google.com/p/psutil/issues/detail?id=260推测您可以解析 dyld_shared_cache_*.map 文件以获取此信息。
- https://stackoverflow.com/a/15714052/1026指向另一个实现, http://newosxbook.com/src.jl?tree=listings&file=12-1- vmmap.c
于 2013-06-18T23:23:01.800 回答