Mac Catalina Corefile 文件路径

7

我有一个程序在 Mac Catalina 下出现了段错误,但是核心文件在 /cores 中没有显示。我检查过了核心文件大小为无限制,并且通过创建一个包含 "limit core unlimited" 的 /etc/launchd.conf 文件和执行 "launchctl" 来启用了核心文件。但是这些都没有任何效果。

有人知道如何在 Catalina 下重新启用核心文件,或者它们存储在哪里吗?

2个回答

6

我最近升级到了macOS Catalina,但奇怪的是即使sysctl -a命令显示了预期的kern.corefile: /cores/core.%Pkern.coredump: 1,同时在交互式shell中运行了ulimit -c unlimited命令,我仍然无法生成核心转储文件。最终我找到了问题所在,原因是/cores目录的权限为rwxr-xr-x。当我运行sudo chmod 1777 /cores命令后,即使作为非root用户也能够创建核心转储文件。


1
似乎在/bin/中的文件不允许抛出核心。如果您调用sleep 50000&并使用kill -11 %1,这将不会生成核心转储文件。
如果您事先将程序复制到/tmp/中,则会生成核心转储文件。
因此,用SIG11杀死睡眠以验证核心文件生成的有用技巧不容易奏效。
同一Shell中的后台进程似乎并非在所有情况下都会产生核心转储文件。

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