程序运行遇到core dumped
崩溃是常见现象,有时候,我们希望程序在崩溃的时候,先做点其他操作再崩溃,比如记录崩溃时刻的堆栈信息,或是提前释放一些硬件资源等等,那么就需要让程序捕获错误信号
下面是一个捕获SIGSEGV
信号的简单例子。
SIGSEGV
信号是最常见的core dumped
信号,主要由访问空指针、内存访问越界、访问已释放的内存等原因导致
cpp
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
static void signal_handler(int sig) {
printf("core dumped...\n");
/*
// to do something
*/
exit(-1);
}
int main() {
signal(SIGSEGV, signal_handler);
int *p = nullptr;
*p = 1;
return 0;
}