什么是core dump?
在UNIX系统中,常将“主内存”(main memory) 称为核心(core),因为在使用半导体作为内存材料之前,便是使用核心(core)。而核心映像(core image) 就是 “进程”(process)执行当时的内存内容。当进程发生段错误或收到“信号”(signal) 而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。core dump通常包含寄存器状态,堆栈指针,内存管理信息。
core dump的用处
core dump可以用在很多场合,使用Linux,或者solaris的人可能都有过这种经历,系统在跑一些压力测试或者系统负载一大的话,系统就hang住了或者干脆system panic。这时候就可以通过core dump来定位这类问题。现在很多应用程序出错时也会出现core dump,比如段错误。core dump 对于编程人员诊断和调试程序是非常有帮助的,因为对于有些程序错误是很难重现的,例如指针异常,而 core dump 文件可以再现程序出错时的情景。
如何产生core dump?
linux默认是不产生core dump文件的,ulimit -a显示
linux-pm2g:/mnt/hgfs/E/test # ulimit -a
core file size (blocks, -c) 1//core dump file
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15966
max locked memory (kbytes, -l)