linux C/C++ 捕获 SIGSEGV 段错误信号

程序运行遇到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;
}
相关推荐
AMoon丶4 分钟前
C++新特性-智能指针
linux·服务器·c语言·开发语言·c++·后端·tcp/ip
蜕变的小白6 分钟前
Linux系统编程-->高效并发服务器:IO多路复用详解
linux·运维·服务器
峥嵘life13 分钟前
Android16 EDLA更新25-12补丁导致【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习
草莓熊Lotso13 分钟前
手搓简易 Linux 进程池:从 0 到 1 实现基于管道的任务分发系统
linux·运维·服务器·数据库·c++·人工智能
YMWM_1 小时前
linux文件快速传windows
linux·运维·服务器
星竹晨L1 小时前
Linux开发工具入门(一):开发三板斧(包管理器,vim,gcc/g++) 以及入门理解动静态库
linux·运维·服务器
一方热衷.7 小时前
YOLO26-Seg ONNXruntime C++/python推理
开发语言·c++·python
sunxunyong8 小时前
CGroup配置
linux·运维·服务器
hy____1238 小时前
Linux_网络编程套接字
linux·运维·网络
若风的雨9 小时前
【deepseek】 Linux 调度延时分析
linux