【问题标题】:Identify stack and heap segments in macOS current process识别 macOS 当前进程中的堆栈和堆段
【发布时间】:2018-04-01 00:13:04
【问题描述】:

我想将内存分析器添加到在 macOS 下运行的守护程序。在 linux 中,我可以简单地检查 /proc/<pid>/map 以获取进程中的任何映射内存,然后查找 pathname = [heap] 或 pathname = [stack]。

是否有任何替代的 mac syscall/MIG/mach 消息用于此目的?

我尝试查看proc_pidinfo 是否包含任何有价值的信息,但遗憾的是没有与我的需求相关的信息。

请注意,Apple 为其他名为 vmmap 的远程进程提供了此类工具,它根本不提供任何 API(它只是命令行工具),并且没有针对此需求的公共 API,但也许有一个 API从流程本身的“内部”提取这些信息。

【问题讨论】:

    标签: c++ objective-c c macos heap-memory


    【解决方案1】:

    我不知道它使用了哪些公共 API(如果有的话),但最接近 macOS 中 Linux 的 /proc/$pid/maps 的是 vmmap 实用程序。使用 PID 作为参数运行它会给你一个关于进程映射的所有区域的详细报告,包括malloc 区域内的内存使用情况的一些有趣细节。

    【讨论】:

    • 是的,但我想建立一个进程内内存分析器,所以我需要一些 API,你熟悉任何私有的吗?谢谢
    • 这个question 可能会有所帮助。
    猜你喜欢
    • 2019-11-23
    • 2016-01-19
    • 2012-12-27
    • 2015-08-05
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    相关资源
    最近更新 更多