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;
}
相关推荐
jieyucx2 分钟前
Windows11 & Linux 环境Docker部署与镜像拉取效率优化实战指南
linux·运维·docker
拳里剑气17 分钟前
C++算法:优先级队列
开发语言·c++·算法·优先级队列
weixin_3077791329 分钟前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
从零开始的代码生活_40 分钟前
C++ 模板入门:函数模板、类模板与实例化机制
开发语言·c++·后端
远离UE410 小时前
UE5 compute shader 原子加
开发语言·c++·ue5
C+-C资深大佬10 小时前
C++ 显式类型转换详解:static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
luj_176811 小时前
心形曲线轨迹控制三大关键技术
c语言·开发语言·c++·经验分享·算法
取地址符11 小时前
C++学习笔记(基于learn-cxx)(1)
c++·经验分享·笔记·学习
RisunJan12 小时前
Linux命令-rlogin(远程登录)
linux·运维
思麟呀12 小时前
C++17(三)if constexpr+折叠表达式
开发语言·c++