A core dump records a computer’s memory when a serious error occurs, aiding in debugging. It originated in the 1960s with magnetic core memory and can now be saved to various storage technologies. Poorly written software or hardware problems can cause core dumps, which come in two types: one where only the offending program is stopped, and another where the entire system is halted to prevent further complications.
A core dump is a record of the contents of a computer’s memory when a serious error has occurred. It can include all of the system memory or just the portion used by the program that failed. It may also include other relevant data such as processor status, log contents, and information about running processes. Software engineers often use core dumps with debuggers and other utilities to analyze and fix computer errors. A core dump can also be used to transfer a worker process from one processor to another during normal operation.
The term “core dump” probably originated in the 1960s when the first computers used magnetic core memory. When a running program crashed, all data from the entire core was printed on paper to aid debugging. These printouts usually consisted of little more than memory addresses and data in octal or hexadecimal notation. As storage technologies improve, core dumps can be saved to disk, removable magnetic tape, or nonvolatile memory sticks. Increased storage capacity for status information along with advances in software debugging have made diagnosing errors more efficient.
Typical causes of core dumps are poorly written applications or system software. Most often, program code assumes that array pointers and indices always refer to valid data structures. If any of these have moved beyond the bounds of their original structures, for example, a core dump could occur. Problems accessing data files on a storage device or reading corrupted data can also cause a core dump. Hardware problems, including malfunctioning memory, hard drives, or processors, can also trigger them.
There are generally two types of core dumps. One type is where the running process or application program is terminated and control returns to the operating system. In this case, the rest of the system continues to function normally since only the offending program has been stopped. Usually a large core dump file is generated which can then be loaded into a debugger. If the error occurred in a program for which symbols and source code are available, these can also be loaded into the debugger.
The other more serious type of core dump is also called a kernel panic. This type of dump stops the entire system in its tracks in order to prevent further complications and data corruption. On Microsoft Windows® systems, this type of dump usually occurs in the all too familiar form of a “blue screen of death”. Panics like these are usually harder to debug and are often caused by hardware or system-wide problems. These can occur before the system has finished booting when there is little information about the actual cause.
Protect your devices with Threat Protection by NordVPN