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

时间:2016-10-04 12:44:17

标签: coredump macos-sierra ulimit sysctl

我需要为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

现在这种方法不起作用。 在this Site中讨论新的 gcore 命令,但它适用于运行进程。 对于KernelCoreDumps,您现在必须启用NVRAM变量official

1 个答案:

答案 0 :(得分:0)

我刚刚使用Xcode 9尝试了ulimit -c unlimited,然后执行了一些肯定会得到段错误的东西,并且宾果游戏获得了一个用/core/编写的coredump。 即,我试过

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

将其保存到文件中,比如说x.c,然后在执行ulimit的同一终端会话中执行cc x.c(假设您安装了Xcode的命令行工具) ),然后是./a.out

coredump的大小超过700Mb,信不信由你。