我正在尝试使用 abort 来获取生成核心文件的进程,但没有成功。
abtest.c:
#include<stdlib.h>
#include <stdio.h>
int main() {
printf("callign abort...\n");
abort();
printf(".. shouldn't get here\n");
return 0;
}
程序输出:
callign abort...
Abort
但是我可以使用 gcore 转储核心文件。它是在当前目录中生成的。
我的 coreadm 输出:
global core file pattern:
global core file content: default
init core file pattern: core
init core file content: default
global core dumps: disabled
per-process core dumps: enabled
global setid core dumps: disabled
per-process setid core dumps: disabled
global core dump logging: disabled
我发现核心文件实际上是定向到 /var/core 而不是当前目录。不知道为什么,因为 coreadm 没有指出这一点。另外,如上所述,gcore 在我当前的目录中生成了核心文件。 无论如何,由于 /var/core 对我来说不可写,因此没有生成核心文件。使其可写并获得核心文件。