【发布时间】:2013-08-21 10:12:46
【问题描述】:
我在这里有一个情况,几天前我能够在我的目标板上看到核心哑文件,我通过在我的 /etc/profile 中添加“ulimit -c unlimited”来提供核心转储生成支持。但是后来有人告诉我
这只会对从登录 shell 启动的程序生效,而不是对 systemd 启动的进程/服务,etc/limits 将是设置这些默认值的正确位置。
所以我更改了 /etc/limits 文件并添加了“ulimit -c unlimited”行。但现在我看不到 Coredumped 文件
我正在运行 kill -9 $$ 来生成分段错误,然后它会像之前一样生成 coredump 文件。
我们尝试更改“/proc/sys/kernel/core_pattern”文件并显式运行 ulimit -c unlimited,但也没有成功
我们哪里做错了??
【问题讨论】:
-
-9到kill命令是KILL信号,将简单地终止进程而无需核心转储。 -
另外,为什么要使用
$$?它扩展为您正在运行的 shell 的 pid。 -
如果你使用的是 bash,你应该阅读the manual,上面写着:“在所有情况下,Bash 都会忽略 SIGQUIT。”
-
Linux 内核可以在不支持
core的情况下进行配置。查看为您的 Linux 内核设置了 CONFIG_ELF_CORE。然后应用标准的用户空间信息。
标签: c shell linux-kernel arm coredump