3

我想在 mac 上拍摄正在运行的进程的内存快照。我不知道该怎么做。

我有 IDA-PRO for mac。可以使用吗?如何?

任何人都可以建议我这样做吗?(一些文档或示例)。可能可以使用一些来自 uni 的技术,但我也没有意识到这一点。

我不想终止进程,因为我想看看执行指令/命令后发生了什么变化。

4

1 回答 1

4

您可以向正在运行的进程发送信号以将核心转储到文件中,该文件可以在稍后与 gdb 一起用于事后分析。

kill -ABRT <process-id>

看来您必须配置系统以启用核心转储。有关详细信息,请参阅http://developer.apple.com/library/mac/#technotes/tn2124/_index.html

更新:

好吧,上面的链接介绍了第三方实现gcore,一个命令行工具,用于对正在运行的进程进行核心转储:

http://www.osxbook.com/book/bonus/chapter8/core/

您可能只想获取源代码并尝试:

http://www.osxbook.com/book/bonus/chapter8/core/download/gcore-1.3.tar.gz

要使单个 FAT 二进制文件与 ppc/i386/x86_64 一起使用,只需修改 Makefile 中的以下行:

gcore: gcore.c
        gcc -O2 -arch ppc -arch i386 -Wall -o $@ $<

作为:

gcore: gcore.c
        gcc -O2 -arch ppc -arch i386 -arch x86_64 -Wall -o $@ $<
于 2011-08-23T16:27:20.203 回答