macでデフォルトのcore出力設定を変える方法
環境
- OS X 10.8.2 Mountain Lion
ulimit
coreはデフォルトでは出力サイズが0になっているので出力されません。
出るようにするにはulimitコマンドを使います。
まずは現状の確認。
$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 709 virtual memory (kbytes, -v) unlimited
無制限に変更します。
$ ulimit -c unlimited $ ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 256 pipe size (512 bytes, -p) 1 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 709 virtual memory (kbytes, -v) unlimited
これでcoreが出力されるようになります。
launchd.conf
ただし、ulimitの設定は再起動すると失われます。
デフォルト設定を変えるには、/etc/launchd.confを使うのが簡単です。
/etc/launchd.confに以下を記述します。デフォルトではlaunchd.confは存在しないので作成します。
limit core unlimited unlimited
launchd.confは、launchdの設定ファイルです。
launchctlのコマンドをそのまま記述できます。