核心转储在Mac OS X中编写的?
在Mac OS X上,如果我将SIGQUIT发送到我的C程序,它会终止,但是没有核心转储文件。
你是否必须在Mac OS X上手动启用核心转储(如何?),还是写入其他地方而不是工作目录?
看来他们被默认压制了。 运行
$ ulimit -c unlimited
将启用核心转储,并将它放在/ cores / as core.PID中
在macOS上,您的崩溃转储会由Crash Reporter自动处理。
您可以通过执行控制台并转到用户诊断报告部分(在“诊断和使用信息”组下)find回溯文件,或者可以在~/Library/Logs/DiagnosticReports
find它们。
您还可以通过监视system.log
文件来检查生成转储的位置,例如
tail -f /var/log/system.log | grep crash
您可以在/cores
find实际的核心转储文件。
阅读更多: 如何在Mac OS X中生成核心转储?
上面的答案,
ulimit -c无限制
工作 – 但一定要运行在同一个terminal上,你将运行的核心转储程序。 您需要先运行ulimit命令。
默认情况下,mac osx中的特定目录是隐藏的。 您可能希望在terminal中启用此function,然后核心转储应在目录/内核中可见。
默认写入com.apple.finder AppleShowAllFiles TRUE
此外,/ cores目录必须存在,运行该程序的用户必须具有写入权限。