Science Fair Project Encyclopedia
A core dump is an unstructured record of the contents 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, but originally it was a printout of the entire contents of working memory.
The name comes from core memory, and the image of a dumping a bulk commodity.
Core dumps are a useful debugging aid 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 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. Thus, to 'dump core' means to encounter a fatal error.
A core dump, unlike other kinds of debugging information, represents the complete, unstructured state of memory. It is thus especially useful when pointer structures have been corrupted when using an unsafe programming language such as assembler or C. 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.
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.
Also see the humorous variant brain dump.
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details