linux下获取崩溃程序的core文件

一 概述

本文章是介绍在linux下开发的程序崩溃如何去解决,类似于windows下程序崩溃时会生成dump文件,linux下程序崩溃时也会生成一个崩溃文件,该文件是core。如何生成core文件是本文章要着重介绍的。

二 操作步骤

1.在终端执行命令:设置core 文件大小无限制 ,当前shell生效

ulimit -c unlimited

2.在终端中执行脚本 proc-watch.sh

./proc-watch.sh ./app

3.程序崩溃后,在可执行程序当前目录会生成一个core文件

4.使用gdb命令进行调试,查询最后崩溃的调用栈

gdb ./app core

bt full

三 脚本

bash 复制代码
#!/bin/bash
# 用法: ./proc-watch.sh ./yourapp arg1 arg2

APP="$1"
shift

# 开启core文件大小限制(当前shell生效)
ulimit -c unlimited

# 设置内核core生成规则,sysctl
sudo sysctl -w kernel.core_pattern="core.%e.%p.%t" >/dev/null

echo "=== Watch start, run: $APP $@"
echo "=== Crash will generate core.* in current dir"

# 启动目标程序
"$APP" "$@"
CODE=$?

if [ $CODE -ge 128 ]; then
    SIG=$((CODE - 128))
    echo "==== Process crashed by signal $SIG ===="
else
    echo "Process exit normally, code:$CODE"
fi
exit $CODE
相关推荐
半杯咖啡半行码2 小时前
QML进阶指南:状态动画与模型视图实战详解
运维·qml
qeen872 小时前
【Linux】动静态库的制作使用及ELF文件的宏观理解
linux·运维·库
xie881018022 小时前
正则里的点号不匹配换行:多行模式的开关
运维·服务器·测试工具
是jin奥2 小时前
Claude Code + GitHub 自动化工作流整理
运维·自动化·github
wefg12 小时前
【Docker】基本指令
运维·docker·容器
日常筹谋记2 小时前
数据中心逆变设备运维|通讯对接、动环接入与多系统联动方案科普
运维·网络
强哥聊算力3 小时前
《算力江湖·Intel帝国往事》第三集:安迪·格鲁夫的铁血时代:Intel为什么能把对手逼到墙角?
运维·人工智能·科技·算法·ai·gpu算力
YYRAN_ZZU3 小时前
FlameGraph 火焰图介绍和使用
linux·嵌入式硬件
正在走向自律3 小时前
Linux 服务器部署 DeepSeek 大模型完全指南(2026 版)
linux·运维·服务器·deepseek·部署deepseek·安装ollama·配置api服务