如何解析linux下使用systemd-coredump生成的core信息

本文介绍了在Linux系统下处理coredump信息的方法。包括使用coredumpctl命令获取主机已崩溃信息,如查看、过滤转储文件等;还说明了导出coredump文件、赋权、解析core文件的步骤,以及其他分析方法,如用gdb分析、导出崩溃调用栈等。

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

目录

一、获取当前主机上已经崩溃的信息

1.1 coredumpctl list 

  1.2 coredumpctl list --since=DATE

1.3 coredumpctl list --until=DATE

1.4 coredumpctl list -r

1.5 coredumpctl info

1.6 coredumpctl dump

二、导出coredump文件

三、赋权

四、解析core文件

五、其他分析方法

5.1coredumpctl gdb pid

5.2 coredumpctl debug

5.3 捕捉回溯——导出崩溃调用栈

在linux下如果使用systemd-coredump生成了core信息,在当前用户下是无法正常解析出来的,需要使用root用户来做相关的解析

一、获取当前主机上已经崩溃的信息

1.1 coredumpctl list 

查看转储文件,EXE是发生coredump的可执行文件,PID是coredump的进程号

[root@localhost ~]# coredumpctl list
TIME                            PID   UID   GID SIG COREFILE  EXE
Wed 2022-06-22 16:49:19 CST   12613     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Wed 2022-06-22 17:47:51 CST   13101     0     0  11 missing   /usr/local/lib64/mate-indicators/libexec/mate-indicators
Wed 2022-06-22 17:50:30 CST   22707     0     0  11 missing   /usr/local/lib64/mate-indicators/libexec/mate-indicators
Wed 2022-06-22 17:50:59 CST   22845     0     0  11 missing   /usr/local/lib64/mate-indicators/libexec/mate-indicators
Wed 2022-06-22 18:04:34 CST    9083     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Thu 2022-06-23 15:17:20 CST    3215     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Thu 2022-06-23 15:21:06 CST    3253     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Thu 2022-07-14 15:41:28 CST    3287     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Fri 2022-08-12 09:40:13 CST    3361     0     0   5 missing   /usr/libexec/pulse/gsettings-helper
Thu 2022-08-25 16:01:19 CST  134011  1000  1000  11 missing   /home/gaps41/Sources/libsrc/dci/dm/dcitest
Thu 2022-08-25 16:01:28 CST  134035  1000  1000  11 missing   /home/gaps41/Sources/libsrc/dci/dm/dcitest
Thu 2022-08-25 20:31:55 CST  140811  1000  1000  11 missing   /home/gaps41/Sources/libsrc/dci/dm/dcitest
Fri 2022-09-02 10:48:22 CST  764105  1000  1000  11 missing   /home/gaps41/64bit/bin/MPP_SDS
Fri 2022-09-02 10:48:22 CST  764147  1000  1000  11 missing   /home/gaps41/64bit/bin/MPP_SDS_DEBUG
Fri 2022-09-02 10:48:22 CST  764292  1000  1000  11 missing   /home/gaps41/64bit/bin/MPP_lsSDS
Fri 2022-09-02 10:48:22 CST  764253  1000  1000  11 missing   /home/gaps41/64bit/bin/MPP_liSDS
Fri 2022-09-02 10:48:22 CST  764215  1000  1000  11 missing   /home/gaps41/64bit/bin/MPP_XSDS

  1.2 coredumpctl list --since=DATE

如果设备上转储文件太多,可以用–since选项过滤出 某天以后的coredump文件

在这里插入图片描述

1.3 coredumpctl list --until=DATE

如果设备上转储文件太多,可以用–since选项过滤出 直到某天的coredump文件
在这里插入图片描述

1.4 coredumpctl list -r

按时间逆序显示所有的core文件(最近产生的最先显示)
在这里插入图片描述


1.5 coredumpctl info

查看最近一次coredump的信息,后面加进程号的话,查看指定coredump的信息


1.6 coredumpctl dump

显示匹配到的第一条coredump信息,如果后面接进程号的话,查看指定coredump的信息

二、导出coredump文件

在root用户下执行命令:coredumpctl -o corefile.1234 dump  2819462

其中:-o 之后为需要导出的文件 ,导出来的文件可以使用gdb来查看对应的堆栈信息

dump之后的数字2819462为coredumpctl list 名称查询出来的pid值

三、赋权

将第二步导出来的core文件copy到原始程序启动的用户AAAAA下,执行命令给用户AAAAA赋权

chmown -R AAAAA corefile.1234

四、解析core文件

按照正常gdb解析core文件来处理

五、其他分析方法

5.1coredumpctl gdb pid

使用gdb分析coredump文件

5.2 coredumpctl debug

进入匹配到的第一条coredump的调试器,后面加进程号的话,进入指定coredump的调试器

5.3 捕捉回溯——导出崩溃调用栈

Set logging file mybacktrace.txt
Set logging on
Thread apply all bt full

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值