OS X 'heap' 命令行实用程序显然可以枚举不同的 malloc 区域和任何正在运行的进程的各个 malloc 块。它不需要链接任何特殊的调试库或为目标进程设置任何调试堆环境变量。
它使用哪种底层机制来做到这一点?我能找到的所有 malloc 调试 API 都需要在进程内部设置挂钩、链接的特殊调试库或在启动进程之前设置调试环境变量。据我所知,该实用程序的源代码不可用,并且在 Google 和 Apple.com 上进行的多次搜索也没有发现任何有用的信息。
我最感兴趣的是获得实际的 malloc'ed 内存总和,因为进程的常驻大小通常会比应用程序代码实际请求的内存大得多。
谢谢!