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;
}
相关推荐
kyriewen8 分钟前
WebAssembly:前端界的“外挂”,让C++代码在浏览器里跑起来
前端·c++·webassembly
陶然同学19 分钟前
【Linux及Shell】VMware&Ubuntu&Xshell安装
linux·运维·xshell8·xftp8
咖喱o37 分钟前
DHCP
linux·运维·服务器·网络
IMPYLH1 小时前
Linux 的 touch 命令
linux·运维·服务器·bash
承渊政道1 小时前
【动态规划算法】(完全背包问题从状态定义到空间优化)
数据结构·c++·学习·算法·leetcode·动态规划·哈希算法
超级大福宝1 小时前
【力扣48. 旋转图像】超好记忆版 + 口诀
c++·算法·leetcode
lzh200409191 小时前
深入学习Linux进程间通信:共享内存
linux·c++
ErizJ1 小时前
Linux|学习笔记
linux·笔记·学习
wangchunting1 小时前
VMware17 使用Rocky Linux 9.7系统
linux·运维·服务器