ubuntu 14.04 将核心文件放到哪里?

ubuntu 14.04 将核心文件放到哪里?

我已经使用 ulimit 启用了无限制的核心文件大小:

ulimit -a
core file size          (blocks, -c) unlimited
...

我相信我已经触发了核心转储,但我无法在我的主目录、var/...等中找到核心文件...

您知道 Ubuntu 在哪里配置核心转储位置吗?

答案1

我认为这更像是 Linux 内核的事情,而不是特定于 Ubuntu 的事情。请查看

cat /proc/sys/kernel/core_pattern

查看核心文件手册页

答案2

默认情况下,Ubuntu 内核配置为使用 apport 来记录核心转储。您可以通过覆盖来覆盖此功能,有关详细信息/proc/sys/kernel/core_pattern,请查看“核心转储文件的命名”部分man core。例如:

echo '/tmp/core.%e.%p.%t' | sudo tee /proc/sys/kernel/core_pattern

Apport 将核心转储写入/var/crash/_path_to_program.userid.crash,但它只会对从主 ubuntu apt 存储库安装的应用程序执行此操作。

有关 apport 的更多信息:https://wiki.ubuntu.com/Apport

答案3

在 Ubuntu 16.04.3 LTS 上,我的核心转储位于:

/var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

因此,要运行它gdb,您可以运行:

apt install gdb gdb /path/to/your/binary/application-name /var/lib/systemd/coredump/core.application-name.0.24d47e89526c4c7e90953998d2c33d1e.19672.1516049424000000000000

相关内容