web-dev-qa-db-ja.com

コアダンプはMacのどこに書き込まれますか?

Mac OS Xでは、SIGプログラムをCプログラムに送信すると終了しますが、コアダンプファイルはありません。

Mac OS Xでコアダンプを手動で有効にする必要がありますか(方法)、作業ディレクトリではなく他の場所に書き込まれますか?

69
xyz

デフォルトでは抑制されているようです。ランニング

$ ulimit -c unlimited

現在の端末のコアダンプを有効にし、core.PIDとして/ cores /に配置されます。新しいセッションを開くと、再びデフォルト値に設定されます。

92
xyz

MacOSでは、クラッシュダンプは Crash Reporter によって自動的に処理されます。

Console を実行してUser Diagnostic Reportsセクション(「Diagnostic and Usage Information」グループの下)に移動すると、バックトレースファイルを見つけることができます。または、~/Library/Logs/DiagnosticReportsで見つけることができます。

system.logファイルを監視することにより、ダンプが生成される場所を確認することもできます。

tail -f /var/log/system.log | grep crash

/coresにある実際のcoreダンプファイル。

こちらもご覧ください:

27
kenorb

上記の答え、

ulimit -c無制限

動作しますが、コアをダンプするプログラムを実行するのと同じ端末で必ず実行してください。最初にulimitコマンドを実行する必要があります。

12

デフォルトでは、mac osxの特定のディレクトリは非表示です。端末でこの機能を有効にすると、ディレクトリ/ cores内にコアダンプが表示されるはずです。

デフォルトはcom.Apple.Finder AppleShowAllFiles TRUEを書き込みます

10
Gnark

また、/ coresディレクトリが存在し、プログラムを実行しているユーザーに書き込み権限が必要です。

10
user666406