核心转储

核心文件(core file),也称磁芯傾印(core dump)[1],是操作系统进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试

背景编辑

核心文件一词来源于磁芯内存(core memory),1950-1970年代的主要的随机存取存储介质。

使用编辑

核心文件通常在系统收到特定的信号时由操作系统生成。信号可以由程序执行过程中的异常触发,也可以由外部程序发送。动作的结果一般是生成一个某个进程的内存转储的文件,文件包含了此进程当前的运行堆栈信息。有时程序并未经过彻底测试,这使得它在执行的时候一不小心就会遭到破坏。这可能会导致核心转储(core dump)。现在的UNIX系统极少会面临这样的问题。即使遇到,程序员可以通过核心映像调试程序来找到错误原因。

分析编辑

程序自身产生的coredump文件一般可以用来分析程序运行到哪里出错了。

Linux平台常用的coredump文件分析工具是gdb;Solaris平台用pstack和pflags;Windows平台用userdump和windbg。

外部程序触发的dump一般用来分析进程的运行情况,比如分析内存使用/线程状态等。

Solaris的常用内存分析工具umem就是需要先通过gcore pid得到coredump的文件然后继续分析内存情况。

别名编辑

因一个翻译错误,它也被戏称为吐核[2]

参考文献编辑

  1. ^ core dump - 磁心傾印國家教育研究院雙語詞彙
  2. ^ 会“吐核”的终端,才是好终端!. I'm TualatriX. [2017-03-29]. (原始内容存档于2017-03-30).