如何从 `abrt` 获取核心转储

How to get a coredump from `abrt`

我是 运行 Fedora 23,最近才发现 abrt 处理我崩溃的应用程序的核心转储,并将各种东西放在 /var/spool/abrt/ccpp-date-pid 中。是否有从 abrt 获取核心转储的命令,而无需从指定文件夹手动复制它?或者我可以 abrt 将核心转储提供给 gdb,并加载二进制文件吗?

我不想更改 /proc/sys/kernel/core_pattern

我在想一些事情:

$ cc -g -o foo main.c
$ ./foo
segmentation fault (core dumped)
$ abrt-magic d55ba08dd0535a223d4a7...
(gdb) # time to do post mortem debugging...

当然 abrt-magic 会被某些命令替换

不是您想要的,但您可以使用 abrt-cli list 列出 ID,并使用给定 ID 的 abrt-cli info -d 来获取回溯。您需要配置 abrtd 以保存非包转储的信息:

sed -i 's/ProcessUnpackaged = no/ProcessUnpackaged = yes/' /etc/abrt/abrt-action-save-package-data.conf

如果 ulimit -c 值允许,您还可以在进程的常用当前目录中获取 "old-fashioned" 核心转储,方法是设置

MakeCompatCore = yes

在配置文件中 /etc/abrt/plugins/CCpp.conf