2014-01-07 47 views

回答

5

內核自己生成coredump。請參閱核心處理例程在這裏的Linux內核源:

http://lxr.linux.no/linux+v3.12.6/fs/coredump.c

如果進程收到以下信號1的,內核試圖通過一個核心轉儲響應。

#define SIG_KERNEL_COREDUMP_MASK (\ 
rt_sigmask(SIGQUIT) | rt_sigmask(SIGILL) | \ 
rt_sigmask(SIGTRAP) | rt_sigmask(SIGABRT) | \ 
rt_sigmask(SIGFPE) | rt_sigmask(SIGSEGV) | \ 
rt_sigmask(SIGBUS) | rt_sigmask(SIGSYS) | \ 
rt_sigmask(SIGXCPU) | rt_sigmask(SIGXFSZ) | \ 
SIGEMT_MASK 

此信息轉儲是可配置的,並且可以通過多種方式,包括文件/proc/sys/kernel/core_pattern,並且ulimit被禁用或控制。也可以通過信號處理機制來控制這些信號的傳送。

+0

核心傾倒首先或信號處理程序首先調用? –

+0

序列爲:1-事件發生(如分段故障)2-內核通過信號通知此事件的進程3-進程處理信號(用戶安裝的或默認處理程序)4-在大多數情況下,上述信號觸發核心處理器動作通過默認的信號處理程序。 – Peter