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;
}
相关推荐
福旺旺1 天前
Linux——解压缩各类文件
linux
MasterLi80231 天前
我的读书清单
android·linux·学习
晚风吹长发1 天前
二分查找算法+题目详解
c++·算法·二分查找
ha20428941941 天前
Linux操作系统学习之---初识网络
linux·网络·学习
飞凌嵌入式1 天前
【玩转多核异构】T153核心板RISC-V核的实时性应用解析
linux·嵌入式硬件·嵌入式·risc-v
陌路201 天前
Linux 34TCP服务器多进程并发
linux·服务器·网络
玉树临风江流儿1 天前
Linux驱动开发实战指南-中
linux·驱动开发
罗义凯1 天前
其中包含了三种排序算法的注释版本(冒泡排序、选择排序、插入排序),但当前只实现了数组的输入和输出功能。
数据结构·c++·算法
m0_527653901 天前
NVIDIA Orin NX使用Jetpack安装CUDA、cuDNN、TensorRT、VPI时的error及解决方法
linux·人工智能·jetpack·nvidia orin nx
春蕾夏荷_7282977251 天前
c++ easylogging 使用示例
c++·log·easylogging