mac下Core Dump文件的行程与分析

mac下生成core dump

  1. 使用ulimit -c查看ulimit设置,显示unlimited表示开启,显示0表示关闭,通过ulimit -c unlimited打开设置; 但是这个只在当前窗口有效果。如果需要变成系统全局设置。 就需要去改/etc/profile文件,打开,然后加上ulimit -c unlimited就可以了,这样当产生Crash的时候就会自动产生dump文件。

  2. 之后需要配置一下dump产生的规则和路径:sudo sysctl kern.corefile=/cores/core.%N.%P,其中%N表示进程名字,%P表示进程id。Linux还有%S,%T分别表示最后一个信号和时间,在MAC上没找到对应的。(mac默认生成的core dump在/cores/下).

  3. 最后如何用lldb来查看一个core dump文件lldb -c core.xxx. 在lldb命令下输入bt查看报错代码.

生成太多core文件会占用电脑磁盘,可以关闭全局的core dump生成配置:

  1. 永久关闭,则在/etc/sysctl.conf中加入一行(如果存在,则将其值修改为0),重启后生效:kern.coredump=0
  2. 零时关闭,当前生效,重启后失效:sudo sysctl -w kern.coredump=0
坚持原创技术分享,您的支持将鼓励我继续创作!