概述:
本文主要是控制coredump文件生成的开关设置,在开发工作中coredump可以很好的帮助我们去发现死机等等程序问题,便于查找问题所在,所以这里如何控制coredump文件生成和简单实用coredump做一个简单的记录。Demo中一些详细的解释可以看后面的参考资料的链接,这里就不赘述了。
Demo:
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/resource.h>
#define DEFAULT_FILE_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
/*启动coredump文件生成*/
int systemCoredumpOpen(char *corePid, char *corePath)
{
struct rlimit limit = {0};
struct rlimit limitSet = {0};
int fdUsesPid = -1;
int fdPattern = -1;
/*设置ulimit大小,即设置生成core文件大小,为0则不生成core文件*/
if (0 != getrlimit(RLIMIT_CORE, &limit))
{
printf("get source limit failed\r\n");
return -1;
}
limitSet.rlim_cur = RLIM_INFINITY;
limitSet.rlim_max = RLIM_INFINITY;
if (0 != setrlimit(RLIMIT_CORE, &