配置(9):在ubuntu上生成core文件

1. 启用核心转储功能(当前终端生效)

ulimit -c unlimited

该命令用于解除系统对核心转储文件大小的限制,确保程序崩溃时能生成core文件。

检查 core 文件的生成路径和权限

cat /proc/sys/kernel/core_pattern

  • 如果输出是 core,则表示默认生成在当前目录。
  • 如果输出是类似 |/usr/share/apport/apport %p %s %c %d %P 的内容,说明系统使用了 apport 等工具来处理崩溃,这可能会阻止 core 文件的生成。
  • 如果输出是 /var/crash/core.%p,则 core 文件会生成在 /var/crash/ 目录下,并且文件名包含进程 PID。

如何修改 core_pattern (需要 root 权限)

临时修改(重启后失效)

sudo sysctl -w kernel.core_pattern=core

永久修改(需要编辑配置文件)

sudo vim /etc/sysctl.conf

添加或修改一行:

kernel.core_pattern = core sudo sysctl -p

2. 重新触发段错误以生成core文件

./kvstore

程序崩溃后 ,在当前目录下查找名为 corecore.<pid> 的文件。

ls -l core*

3. 重新用 GDB 调试core文件 (编译时加-g,core可以生成更多信息)

gdb ./kvstore core.20860

<RET>是指回车键

|-----------|--------------------------|
| bt full | 获取崩溃时的函数调用链及局部变量,定位具体错误点 |

相关推荐
Database_Cool_6 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森7 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_7 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白8 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面8 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧9 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈9 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy9 小时前
log4net 数据库存日志正确配置
数据库
liuxiaowei39 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba