coredump是程序由于异常或者bug在运行时异常退出或者终止,在一定的条件下生成的一个叫做core的文件,这个core文件会记录程序在运行时的内存,寄存器状态,内存指针和函数堆栈信息等等。对这个文件进行分析可以定位到程序异常的时候对应的堆栈调用信息。
执行ulimit –c 检查是否开启core dump,若结果为0,则认为没有启用core dump文件的生成,需要打开core dump 。
限制core dump的文件大小不超过1024K,,
ulimit -c unlimited 是不限制core dump文件的大小现在的程序占用内存都比较凶猛,
以前写C程序需要计算内存的时代已经过去了。如果不加限制,可能一个core文件,几个G就出去了。所以最好还是限制该在小。
总结:
利用core文件可以用来帮助我们定位程序出错的位置,Linux默认core file size = 0未开启,需要手动设置,一般通过ulimit -c 设置一个固定大小,否则电脑上跑上很多个程序会占用磁盘。