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

目录

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

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文件(最近产生的最先显示)
如何解析linux下使用systemd-coredump生成的core信息_第1张图片


1.5 coredumpctl info

查看最近一次coredump的信息,后面加进程号的话,查看指定coredump的信息
如何解析linux下使用systemd-coredump生成的core信息_第2张图片


1.6 coredumpctl dump

显示匹配到的第一条coredump信息,如果后面接进程号的话,查看指定coredump的信息
如何解析linux下使用systemd-coredump生成的core信息_第3张图片

二、导出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文件

如何解析linux下使用systemd-coredump生成的core信息_第4张图片

5.2 coredumpctl debug

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

如何解析linux下使用systemd-coredump生成的core信息_第5张图片

如何解析linux下使用systemd-coredump生成的core信息_第6张图片

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

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

如何解析linux下使用systemd-coredump生成的core信息_第7张图片

如何解析linux下使用systemd-coredump生成的core信息_第8张图片

你可能感兴趣的:(linux运维知识,C/C++基础应用,崩溃信息分析,linux,运维,服务器)