我编译了一些 C 代码,一次用 gcc,一次用 g++,因此我得到了两个输出可执行文件。执行这两个文件时,我发现它告诉我:
Segmentation fault (core dumped)
但是没有迹象表明有任何/var/crash
与此有关的核心转储(只有旧的东西),那么它们会在哪里(我不希望它们在那里,只是想提一下我已经检查过了)?我正在运行带有 GNOME 3.20 的 Ubuntu GNOME 16.04。
答案1
Ubuntu 默认禁用核心转储,方法是将所有用户的最大转储文件大小设置为 0。
您可以通过以下方式检查:
ulimit -c
默认情况下它会显示 0。
现在要启用核心转储,请将大小设置为您想要的值(或unlimited
)。
例如,将最大转储文件大小设置为 4 KB:
ulimit -c 8
-c
采用块号,每个块为 512 字节。
设置为unlimited
(不推荐):
ulimit -c unlimited
这将更改当前用户的限制,但不是永久的。要使更改对用户有选择地永久生效,您应该编辑文件/etc/security/limits.conf
并设置所需的值。