捕捉信号 SIGSEGV 的同时也可以生成 coredump 文件
当完成 Linux Kernel 设置之后,捕捉到 SIGSEGV 之后会在相应目录生成 coredump 文件
如果对 SIGSEGV 注册了信号函数,有可能导致 coredump 不能生成,需要修改函数如下
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
void sighandler(int signum)
{
printf("Process %d got signal %d\n", getpid(), signum);
signal(signum, SIG_DFL);
kill(getpid(), signum);
}
int main()
{
signal(SIGSEGV, sighandler);
printf("Process %d waits for someone to send it SIGSEGV\n", getpid());
sleep(1000);
return 0;
}