我遇到了一个问题,我的c服务器程序 can't coredump when terminate abnormally . 程序在daemon模式下运行,chdir为'/' .

我做了以下事情:

  • ulimit -c unlimited,因此启用了coredump .

  • echo "/tmp/coredump/core.%e.%p.%t"> / proc / sys / kernel / core_pattern,chmod a w coredump,因此它有权写入coredump文件 .

我尝试过这样的事情:

  • 通过kill -6发送SIGABRT,它可以coredump .

  • 在dmesg中,我找不到有关异常终止进程的任何信息 .

  • 运行程序未处于守护进程模式 .

我的操作系统版本:CentOS版本6.4(最终版),x86_64

PS . 服务器程序安装了一个信号处理程序(带有标志SA_RESETHAND的sigaction())来捕获这些信号{SIGHUP,SIGINT,SIGQUIT,SIGTERM}以正常终止(空闲资源) . 所以它可以排除信号屏蔽 .