SIGABRT如何获取coredump文件?

时间:2010-11-11 13:14:40

标签: linux

我用kill(pid, SIGABRT)编写了一个示例程序,但接收SIGABRT的进程没有创建 任何核心转储。如何通过发送SIGABRT信号来获取核心转储文件?

2 个答案:

答案 0 :(得分:7)

是使用

将核心转储文件限制设置为无限制
ulimit -c unlimited

并检查核心转储生成的路径,通常核心转储是在进程的当前目录中生成的,但是通过在/proc/sys/kernel/core_pattern中给出路径,您可以更改核心生成的路径和名称,类似于以下

echo /var/log/mycore >  /proc/sys/kernel/core_pattern

现在核心将生成为/var/log/mycore.pid

还请参考man核心,如果你还没有看到核心那么发送给我们下面命令的输出

cat /proc/sys/kernel/core_pattern

您还可以查看http://yusufonlinux.blogspot.com/2010/11/debugging-core-using-gdb.html

答案 1 :(得分:6)

在运行要中止的进程之前,您需要将核心转储ulimit设置为高于零的值:

ulimit -c unlimited