![ubuntu 14.04 将核心文件放到哪里?](https://linux22.com/image/1433046/ubuntu%2014.04%20%E5%B0%86%E6%A0%B8%E5%BF%83%E6%96%87%E4%BB%B6%E6%94%BE%E5%88%B0%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我已经使用 ulimit 启用了无限制的核心文件大小:
ulimit -a
core file size (blocks, -c) unlimited
...
我相信我已经触发了核心转储,但我无法在我的主目录、var/...等中找到核心文件...
您知道 Ubuntu 在哪里配置核心转储位置吗?
答案1
答案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