Mac上的核心转储写在哪里?


75

在Mac OS X上,如果我将SIGQUIT发送到C程序,它将终止,但是没有核心转储文件。

您是否必须在Mac OS X上手动启用核心转储(如何?),或者将其写入其他位置而不是工作目录?


2
不用抱怨,您可以改写它-实际上,您的标题中甚至没有动词。我很乐意支持您的问题,因为我对该主题感兴趣。我仍然认为问题不在于SO所要求的质量。我甚至有关于核心转储相关的问题stackoverflow.com/questions/2207233/... 顺便说一句,核心转储是位于/cores但确实使用终端和root帐户此文件夹中的样子。
sorin 2010年

5
@Sorin一个建议不是问题,琐事是。
xyz

1
@Sorin FYI'are'是一个(链接)动词。不,它真正的问题在这里,但如果我们是在批评语法,让我们得到它的权利;)examples.yourdictionary.com/reference/examples/...
里克·史密斯

Answers:


96

似乎默认情况下它们被抑制。跑步

$ ulimit -c unlimited

将为当前终端启用核心转储,并将其放置/corescore.PID。当您打开一个新的会话时,它将再次被设置为默认值。


30

在macOS上,崩溃转储由Crash Reporter自动处理。

您可以通过执行控制台并转到“用户诊断报告”部分(在“诊断和使用信息”组下)找到回溯文件,也可以在中找到它们~/Library/Logs/DiagnosticReports

您还可以检查监视system.log文件在哪里生成转储,例如

tail -f /var/log/system.log | grep crash

您可以在中找到实际的核心转储文件/cores

也可以看看:



12

此外,/ cores目录必须存在,并且运行该程序的用户必须对其具有写权限。


6
我刚刚清理完毕,占用了186GB的空间!
Dragonborn 2015年

11

默认情况下,mac osx中的特定目录是隐藏的。您可能要在终端中启用此功能,然后核心转储应该在目录/ cores中可见。

默认写com.apple.finder AppleShowAllFiles TRUE


3
谢谢。我正在使用Terminal(ls -lah)浏览,但这还是一个有用的技巧。
xyz 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.