6

我需要为由 SIGABRT、SIGBUS 等终止的进程启用核心转储文件创建。

在以前版本的 MAC OS X(包括 ElCapitan)中,为我将要执行的所有进程启用代码转储文件:

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

现在这种方式行不通。在此站点中讨论新的gcore命令,但它适用于正在运行的进程。对于 KernelCoreDumps,您现在必须启用 NVRAM 变量official

4

1 回答 1

0

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

#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

不管你信不信,核心转储的大小超过 700Mb。

于 2017-11-22T19:19:41.510 回答