核心转储在Mac OS X中编写的?

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

你是否必须在Mac OS X上手动启用核心转储(如何?),还是写入其他地方而不是工作目录?

看来他们被默认压制了。 运行

 $ ulimit -c unlimited 

将启用核心转储,并将它放在/ cores / as core.PID中

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

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

您还可以通过监视system.log文件来检查生成转储的位置,例如

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

您可以在/coresfind实际的核心转储文件。

阅读更多: 如何在Mac OS X中生成核心转储?

上面的答案,

ulimit -c无限制

工作 – 但一定要运行在同一个terminal上,你将运行的核心转储程序。 您需要先运行ulimit命令。

默认情况下,mac osx中的特定目录是隐藏的。 您可能希望在terminal中启用此function,然后核心转储应在目录/内核中可见。

默认写入com.apple.finder AppleShowAllFiles TRUE

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