生成分析core文件

当Linux程序异常退出时,core文件能帮助分析内存、寄存器和堆栈信息。通过配置`ulimit`、`core_pattern`以及`sysctl`,可以设置core文件生成。使用gdb解析core文件,通过`bt`命令查看函数调用栈,辅助问题定位。在DM数据库服务中,可以通过手动方式触发core文件生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

core文件作用

通常在 Linux 下遇到程序异常退出或者中止,我们都会使用 core 文件进行分析,其中包含了程序运行时的内存,寄存器,堆栈指针等信息,格式为 ELF ,可以理解是程序工作当前状态转储成一个文件,通过工具分析这个文件,我们可以定位到程序异常退出或者终止时相应的堆栈调用等信息,为解决问题提供帮助。

如何生成分析core文件

相关配置

  • 检查core文件是否打开:ulimit -a
  • 阻止core文件生成:ulimit -c 0
  • 设置core文件生成:在.bash_profile中添加ulimit -c unlimited,再执行source
    .bash_profile使其生效
  • 设置生成core文件的路径与文件名:
  • 执行echo “1” > /proc/sys/kernel/core_uses_pid(可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0)
  • 执行echo “/var/core-%e-%p-%t” >
    /proc/sys/kernel/core_pattern(可以设置格式化的core文件保存位置或文件名)
  • 用# sysctl –p
    /etc/sysctl.conf,是修改马上生效。

core_pattern的命名参数如下:
%c 转储文件的大小上限
%e 所dump的文件名
%g 所dump的进程的实际组ID
%h 主机名
%p 所dump的进程PID
%s 导致本次coredump的信号
%t 转储时刻(由1970年1月1日起计的秒数)
%u 所dump进程的实际用户ID

生成core文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值