linux生成coredump文件

文章讲述了如何设置Linux系统使程序产生coredump文件,包括使用sysctl命令修改kernel.core_pattern来指定core文件路径,并通过intEnableCoredumpFile函数利用prctl和setrlimit函数控制进程是否允许生成coredump及限制其大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、sysctl -w kernel.core_pattern=/home/corefiles/core.%h.%p.%e.%t >/dev/null

2、

int EnableCoredumpFile(bool enable)
{
    struct rlimit rl;
    int dumpable;

    if (enable) {
        dumpable = 1;
        rl.rlim_cur = RLIM_INFINITY;
        rl.rlim_max = RLIM_INFINITY;
    } else {
        dumpable = 0;
        rl.rlim_cur = 0;
        rl.rlim_max = 0;
    }

    if (prctl(PR_SET_DUMPABLE, dumpable) == -1) {
        return -1;
    }

    if (setrlimit(RLIMIT_CORE, &rl) == -1) {
        return -1;
    }

    return 0;
}