当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。最常出 现的,几乎所有C程序员都出现过的错误就是“段错误”了。也是最难查出问题原因的一个错误。下面我们就针对“段错误”来分析core文件的产生、以及我们 如何利用core文件找到出现崩溃的地方。
当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
当程序接收到以下UNIX信号会产生core文件:
名字
说明
ANSI C POSIX.1
SVR4 4.3+BSD
缺省动作
SIGABRT
异常终止(abort)
. .
. .
终止w/core
SIGBUS
硬件故障
.
. .
终止w/core
SIGEMT
硬件故障
. .
终止w/core
SIGFPE
算术异常
. .
. .
终止w/core
SIGILL
非法硬件指令
. .
. .
终止w/core
SIGIOT
硬件故障
. .
终止w/core
SIGQUIT
终端退出符
.
. .