注册
CORE文件分析
专栏/技术分享/ 文章详情 /

CORE文件分析

wwwwww 2026/09/18 254 0 0
摘要

CORE文件是程序在异常退出或终止时产生的文件,它记录了程序在出问题的情况下的内存、寄存器状态、堆栈指针等信息,可以理解成程序异常时的现场记录,用于事后调试快速定位异常。

达梦的CORE文件生成功能需要开启,具体步骤如下:

cat /etc/sysctl.conf kernel.core_pattern = /dmdata/core/core_%e_%p

在程序出现异常生成core文件之后,可以使用GDB或者dmrdc来对文件进行分析。

GDB是Linux环境下的命令行调试工具。它能让观察程序在运行过程中的每一个内部状态,从而精准定位和修复逻辑错误。

输入以下命令可以进入

GDB 出错的程序 core文件

core文件的文件名会指明是哪个达梦的程序导致出错

GDB常用命令

命令 说明
bt 查看当前线程的栈信息
thread apply all bt 查看所有线程堆栈,通常会由此查看是否有自己实现的类或者so库。一般会把所有线程的详细栈信息输出到一个文件里面如thread_info.txt
thread id 将线程编号为 id 的线程设置为当前线程。
info threads [id…] 可以查看当前调试环境下存在的线程数以及各线程的具体信息,也可以通过指定线程的编号查看某个线程的具体信息。

一般使用bt来对堆栈进行分析
如果需要更多信息的话需要将symbols文件解压到达梦bin目录下
image.png

没有symbols文件
d8b05f2de761a35764fb3e84e97b5955.png

有symbols文件
image1.png

可以看到多了许多信息

堆栈信息从下往上看,一般#1就是致使程序异常的元凶

dmrdc可以得到程序崩溃时的SQL语句,命令为

dmrdc sfile=/dmdata/core/core-dmserver-2848517-8 dfile=/dmdata/core/core_sql

得到sql语句后可以在本地或者测试环境进行测试来排查问题。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服