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;
}
相关推荐
小新ya1 天前
vscode增删改查文件,一直等待中...
linux·vscode
coderxiaohan1 天前
【C++】C++11
开发语言·c++
雾岛听蓝1 天前
C++优选算法 | 双指针篇(一)
开发语言·c++
穿小甲的技术笔记1 天前
C++ static_cast 解析:零成本的类型安全转换
c++
明洞日记1 天前
【VTK手册036】网格拓扑简化工具:vtkCleanPolyData 使用指南
c++·图像处理·ai·vtk·图形渲染
wakaka_Yu1 天前
COLMAP 3.13.0 + CUDA 12.9 + Ubuntu24.04 编译
c++
济6171 天前
linux(第十四期)--官方 SDK 移植实验-- Ubuntu20.04
linux·运维·服务器
云qq1 天前
x86操作系统23——进程相关系统调用
linux·c语言·汇编·ubuntu
小猪佩奇TONY1 天前
Linux 内核学习(16) --- linux x86-64 虚拟地址空间和区域
linux·运维·学习
L1624761 天前
Docker 安装部署全流程使用指南(Linux 通用版)
linux·docker·容器