Gih's Blog

只言片语

强制产生core dump

2011-06-22 by gihnius, tagged as linux, unix

core是指进程在内存的映像(image), core对于调试程序非常有用, 所以有时希望主动 dump 进程的 内存映像, 叫做core dump. 下面通过向进程发送信号的方法产生core dump.

在AIX系统中,要设置让内核允许做core:

chdev -l sys0 -a fullcore=true
发送信号,但同时也杀死进程:
kill -6 PID
在FreeBSD系统中,系统默认允许core dump, 也可以通过
sysctl kern.coredump=1
设置允许.如果设置了 limit,要解除:
ulimit -c unlimited
然后是:
kill -6 PID
在Linux系统上的操作类似.下面是FreeBSD man文档对 signal id 6 的描述:
     No    Name         Default Action       Description
     1     SIGHUP       terminate process    terminal line hangup
     2     SIGINT       terminate process    interrupt program
     3     SIGQUIT      create core image    quit program
     4     SIGILL       create core image    illegal instruction
     5     SIGTRAP      create core image    trace trap
     6     SIGABRT      create core image    abort program (formerly SIGIOT)