mac下生成core dump
使用
ulimit -c
查看ulimit设置,显示unlimited
表示开启,显示0表示关闭,通过ulimit -c unlimited
打开设置; 但是这个只在当前窗口有效果。如果需要变成系统全局设置。 就需要去改/etc/profile文件,打开,然后加上ulimit -c unlimited
就可以了,这样当产生Crash的时候就会自动产生dump文件。之后需要配置一下dump产生的规则和路径:
sudo sysctl kern.corefile=/cores/core.%N.%P
,其中%N表示进程名字,%P表示进程id。Linux还有%S,%T分别表示最后一个信号和时间,在MAC上没找到对应的。(mac默认生成的core dump在/cores/
下).最后如何用lldb来查看一个core dump文件
lldb -c core.xxx
. 在lldb命令下输入bt
查看报错代码.
生成太多core文件会占用电脑磁盘,可以关闭全局的core dump生成配置:
- 永久关闭,则在/etc/sysctl.conf中加入一行(如果存在,则将其值修改为0),重启后生效:
kern.coredump=0
- 零时关闭,当前生效,重启后失效:
sudo sysctl -w kern.coredump=0