一.启动 core dump
默认情况下,core dump 是关闭状态的,因为 core size 被设置为0。可通过指令 ulimit -c 查看当前值。如下:
设置core文件的最大大小为一个指定的值(单位K),或者unlimited。
那么便打开了core dump。
但是,通过在shell输入ulimit -c 指令的方式来修改,仅对当前shell有效。如果想要每次开机都自动设置,可以修改/etc/proifle文件,在文件的最后添加 ulimit -c 1024(这里设置core文件的大小为1024K) 。
core文件生成的位置默认是可执行文件所在的位置,名称默认为core,其位置和名称是可以设置的。通过下面方法设置到自己指定的目录。
当进程奔溃时,将会在/opt/corefile/目录下生成core dump文件。
二编写测试的程序
hello.c
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("hello word\n");
int *p = NULL;
*p = 666;
return 0;
}