Core dump

From Free net encyclopedia

A core dump is a record of the raw, unstructured contents of one or more regions of working memory at a specific time, generally used to debug a program that has terminated abnormally (crashed). Nowadays, it typically refers to a file containing the memory image of a particular process, or the memory images of parts of the address space of that process, along with other information such as the values of processor registers, but originally it was a printout of the entire contents of working memory.

The name comes from core memory and the image of dumping a bulk commodity such as gravel or wheat.

Core dumps are a useful debugging help in several situations. On early standalone or batch-processing systems, core dumps allowed a user to debug a program without monopolizing the (very expensive) computing facility for debugging. Besides, a printout was more convenient than debugging using switches and lights. On shared computers, whether time-sharing, batch processing, or server systems, core dumps allow off-line debugging of the operating system, so that the system can be back in operation immediately. Core dumps allow a user to save a crash for later or off-site analysis, or comparison with other crashes. For embedded computers, it may be impractical to support debugging on the computer itself, so a dump can be taken for analysis on a different computer. Some operating systems (such as early versions of Unix) do not support attaching debuggers to running processes, so core dumps are necessary in order to run a debugger on a process's memory contents. Finally, of course, an interactive debugger may simply not yet have been written for a particular system.

On many operating systems, a fatal error in a program automatically triggers a core dump. To 'dump core' therefore often means encountering a fatal error regardless of whether a core dump is created.

A core dump, unlike other kinds of debugging information, represents the complete, unstructured state of the dumped memory regions. It is thus especially useful when pointer structures have been corrupted when using assembly language or an unsafe programming language such as C; in that case, source-level debuggers may not be able to access or interpret the memory state in a useful way. A debugger can use a symbol table (if there is one) to help the programmer interpret dumps, identifying variables symbolically and displaying source code. There are also special-purpose tools called dump analyzers.

The paper form of dump generally was arranged in columns of hexadecimal numbers (a "hex dump"), sometimes with alternate interpretations of memory contents along the side: as machine language instructions, as text strings, as decimal numbers, as floating-point numbers, etc.

External links

Descriptions for the file format:


The term is sometimes used on Usenet for a posting that describes what has been happening in the poster's life, especially if it involves emotional stress; the implication is that the material has not been edited or analyzed.

Core dumping is also used to describe a method of test taking in which the test taker writes memorized equations, dates or other information on the back of a test when it is first given out, in order to make sure not to forget it during the test. This behavior often accompanies cramming.

Also see the humorous variant brain dump.ca:Bolcat de memòria es:Volcado de memoria ja:コアダンプ pt:Core dump zh:核心文件