By extension, the phrase "to dump core" has come to mean in many cases, any fatal error, regardless of whether a record of the program memory exists.
Earliest core dumps were paper printouts[7] of the contents of memory, typically arranged in columns of octal or hexadecimal numbers (a "hex dump"), sometimes accompanied by their interpretations as machine language instructions, text strings, or decimal or floating-point numbers (cf.
As memory sizes increased and post-mortem analysis utilities were developed, dumps were written to magnetic media like tape or disk.
These files can be viewed as text, printed, or analysed with specialised tools such as elfdump on Unix and Unix-like systems, objdump and kdump on Linux, IPCS (Interactive Problem Control System) on IBM z/OS,[8] DVF (Dump Viewing Facility) on IBM z/VM,[9] WinDbg on Microsoft Windows, Valgrind, or other debuggers.
Core dumps can be used to capture data freed during dynamic memory allocation and may thus be used to retrieve information from a program that is no longer running.
In the absence of an interactive debugger, the core dump may be used by an assiduous programmer to determine the error from direct examination.
Depending on the operating system, the dump may contain few or no data structures to aid interpretation of the memory regions.
On the IBM System/360, the standard operating systems wrote formatted ABEND and SNAP dumps, with the addresses, registers, storage contents, etc., all converted into printable forms.
[24] The NASA Voyager program was probably the first craft to routinely utilize the core dump feature in the Deep Space segment.
[citation needed] The Voyager craft uses routine core dumps to spot memory damage from cosmic ray events.
Space Mission core dump systems are mostly based on existing toolkits for the target CPU or subsystem.