曾经我会遇到
Segmentation Fault
错误,但是没有生成核心文件。之后,我在编译命令中添加了-ggdb选项,并在执行gcc之前在bash中运行了以下命令:ulimit -c unlimited
一开始都很好(我得到了一个核心文件),但现在我收到了“Segmentation Fault(core dumped)” 的错误,但是在执行gcc命令的目录中没有找到核心文件?它可能被放到其他地方了吗?我还能尝试什么?
一些额外的信息:
- 操作系统:Gentoo Linux
- 启用ELF核心转储已在运行的内核中启用。
- 应用程序是使用gtk+编写的文本编辑器。
答案: 我有两种方法找到它:
find / -name "core" -ls
就像torek建议的那样:
$ strace ./executable > output.txt 2>&1
$ grep chdir output.txt
chdir()
操作?如果是,则跟随其更改的目录。 - Jonathan Lefflercore
(5)手册页面解释了如何控制何时和是否生成core
文件。也许/proc/sys/kernel/core_pattern
中的值指向不同的目录(我的系统管理员设置了我们的以在/tmp
中生成唯一命名的文件)。 - tripleee