当出现分段错误时,不会生成核心转储文件。

19

我正在尝试使用gdb调试我的C程序引起的分段错误。当我运行程序时,不会自动生成核心转储文件,我必须运行以下命令:

ulimit -c unlimited
为了在下一次运行时生成核心转储文件,为什么不自动生成核心转储文件,并且为什么每次都要运行ulimit命令来生成?我使用的操作系统是Ubuntu 10.10。
4个回答

22

你需要将该命令放置在

ulimit -c unlimited

在您的环境设置中。

如果您正在使用bash作为您的shell,您需要将上述命令放置在~/.bashrc中。


16

您可能还想尝试编辑/etc/security/limits.conf文件,而不是将ulimit -c unlimited添加到~/.bashrc中。

limits.conf是在大多数Linux发行版中指定核心转储详细信息的“正确”位置。


9

这是因为默认情况下,您的发行版将核心文件大小限制为0块。您提到的ulimit命令将该限制增加到无穷大。

我不知道Ubuntu,但大多数发行版都有一个名为/etc/limits的文件,其中包含资源限制的系统默认值。


-1

分段错误是由于路径变量的无关值引起的。在我的系统上,用户是sidd@sidd-Lenovo-G460,添加的内容如下。

PATH=$PATH:/home/sidd/ns-allinone-2.35/bin:/home/sidd/ns-allinone-2.35/tcl8.5.10/unix:/home/sidd/ns-allinone-2.35/tk8.5.10/unix

LD_LIBRARY_PATH=/home/sidd/ns-allinone-2.35/otcl-1.14:/home/sidd/ns-allinone-2.35/lib

TCL_LIBRARY=/home/sidd/ns-allinone-2.35/tcl8.5.10/library

请参考这篇博客文章(非常重要)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接