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;
}
相关推荐
yunqi9 小时前
ELK日志平台架构详解:从Filebeat采集到Elasticsearch检索的企业级日志方案实践
linux
小鬼头编程9 小时前
信息学竞赛体系(CSP-J/S、NOIP、NOI、IOI)
c++·人工智能·青少年编程
手揽回忆怎么睡10 小时前
Ubuntu 22.04 64位安装MinIO
linux·前端·ubuntu
我不是懒洋洋10 小时前
从零实现一个分布式数据管道:dbt的核心设计
c++
阳光九叶草LXGZXJ10 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
~光~~10 小时前
【嵌入式linux学习_OV8858 bring up】L1_从Sensor到RK3588发生了什么
linux·运维·学习
Darkwanderor10 小时前
使用管道实现进程间通信 (IPC, Inter-Process Communitation)
linux·c语言·c++
乱七八糟的屋子10 小时前
【C++数值计算】Armadillo超详细入门教程
c++·线性代数·数值计算·科学计算·矩阵运算·armadillo
Yyyyyy~10 小时前
【C++】vector
c++·c++primer
Nuanyt10 小时前
Linux系统的 Shell 常见指令和常见知识点(以bash为主)
linux·运维·chrome·bash