在哪里可以找到 gcc 和 g++ 编译代码的核心转储?

在哪里可以找到 gcc 和 g++ 编译代码的核心转储?

我编译了一些 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并设置所需的值。

相关内容