在macOS Sierra中启用崩溃进程的核心转储

aax*_*aax 6 coredump ulimit sysctl macos-sierra

我需要为SIGABRT,SIGBUS,etc等终止的进程启用核心转储文件创建.

在以前版本的MAC OS X(包括ElCapitan)中,我将为所有进程启用Code Dumps文件:

sudo sysctl -w kern.corefile=/Users/tester/core.%U.%P.%N.dump
sudo sysctl -w kern.coredump=1
sudo launchctl limit core unlimited
sudo ulimit -c unlimited
launchctl limit core unlimited
ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

现在这种方式不起作用.在本网站上讨论新的gcore命令,但它适用于运行进程.对于KernelCoreDumps,您现在必须启用NVRAM变量官方.

Dim*_*nik 0

我刚刚尝试ulimit -c unlimited使用 Xcode 9,然后执行一些肯定会出现段错误的内容,宾果游戏,得到了一个用/core/. 也就是说,我尝试过

#include <stdio.h>
int main()
{
int a[2];
printf("\n hi\n");
a[20000]=10;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

将其保存到一个文件中,例如,然后在您执行上述操作的x.c同一终端会话中(假设您安装了 Xcode 的命令行工具),然后是ulimitcc x.c./a.out

无论您相信与否,核心转储的大小超过 700Mb。