2011-08-23 92 views
3

我想拍一個在mac上操作的進程內存快照。我不知道該怎麼做。mac上進程的內存快照?

我有我的IDA-PRO for mac。它可以被使用嗎?怎麼樣?

任何人都可以建議我一種方法來做到這一點? (一些文檔或示例)。 可能來自uni的一些技術可以使用,但我也沒有意識到這一點。

我不想殺死進程,因爲我想看執行指令/命令後發生了什麼變化。

+0

@ SHR的答案是你的要求之一(非常有用)解釋。我認爲'快照'意味着'隨着時間的推移運行內存使用的視圖'。 1,其他,兩者還是另一個? ;-) 祝你好運。 – shellter

+0

@shellter:快照意味着內存的運行視圖。我不想殺死這個進程,因爲我想知道在執行完指令/命令後會發生什麼變化。 – MacGeek

回答

4

您可以發送信號到正在運行的進程以將核心轉儲到文件中,該文件可以在以後用於gdb進行事後分析。

kill -ABRT <process-id> 

看來你必須配置你的系統來啓用核心轉儲。詳情請參閱http://developer.apple.com/library/mac/#technotes/tn2124/_index.html

UPDATE:

好了,以上環節引入第三方實施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 [email protected] $< 

爲:

gcore: gcore.c 
     gcc -O2 -arch ppc -arch i386 -arch x86_64 -Wall -o [email protected] $< 
+0

我不想殺死進程,因爲我想查看執行指令/命令後發生了什麼變化。 – MacGeek

+0

謝謝。我會嘗試。 – MacGeek

+0

謝謝。但是這個不清楚。什麼工作?我們該做什麼?? –