配置(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 | 获取崩溃时的函数调用链及局部变量,定位具体错误点 |

相关推荐
环流_11 分钟前
redis核心数据类型在java中的操作
java·数据库·redis
雨辰AI17 分钟前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务
一个天蝎座 白勺 程序猿19 分钟前
存储治理:表空间自动目录创建与国产操作系统生态适配
数据库·kingbasees
Goldbioinformatics22 分钟前
Windows版Claude Cowork启动Linux问题
linux·运维·windows
2401_8844541527 分钟前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
weelinking1 小时前
【企业级】企业级大模型合规实战:数据安全与跨境传输的技术解决方案
数据库·人工智能·机器学习·云计算·github
m0_470857641 小时前
golang如何实现目录大小统计_golang目录大小统计实现方案
jvm·数据库·python
xiaoshuaishuai81 小时前
C# CDN加速与离线包优化PowerSetting慢问题
开发语言·windows·spring·c#
穗余1 小时前
RAG为什么必须用向量数据库?
数据库
weixin_444012931 小时前
如何在多实例管理时隐藏MySQL版本信息_安全混淆与配置
jvm·数据库·python