Macで動作しているプロセスのメモリのスナップショットを撮りたいです。どうしたらいいのかわからない。
IDA-PROformacを持っています。使えますか?どのように?
誰かが私にこれを行う方法を提案できますか?(いくつかのドキュメントまたは例)。ユニのテクニックも使えるかもしれませんが、私も気づいていません。
命令/コマンドの実行後に何が変化するかを確認したいので、プロセスを強制終了したくありません。
実行中のプロセスにシグナルを送信して、コアをファイルにダンプできます。このファイルは、後で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
ppc / i386 / x86_64で使用する単一のFATバイナリを作成するには、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 $@ $<