mac上进程的内存快照?

时间:2011-08-23 16:19:38

标签: macos unix memory process ida

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

我和我一起使用IDA-PRO for mac。可以用吗?怎么样?

有谁能建议我这样做? (一些文档或示例)。 也许可以使用uni的一些技术,但我也没有意识到这一点。

我不想杀死这个过程,因为我想看看执行指令/命令后有什么变化。

1 个答案:

答案 0 :(得分: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 $@ $<