# Dump

Dump (engl.: [dʌmp] [auch] für [das] Abladen oder Abkippen und übertragen [auch] für Depot, Abladeplatz oder Lager) oder Speicherauszug bezeichnet in der Datenverarbeitung eine Kopie oder Auszug eines Speicherinhaltes. Der Speicherauszug kann auf dem Monitor, Drucker oder als Datei ausgegeben werden; die Inhalte können zum Beispiel als char, hexadezimal, binär oder oktal dargestellt werden. Ein Dump wird oft zur Fehlerdiagnose bei einem Programmabsturz (englisch crash dump) genutzt, manchmal auch zur Analyse der Leistung.

## Arten

Handelt es sich um den Inhalt der Register eines Prozessors, spricht man von Registerdump, handelt es sich um den Inhalt des Arbeitsspeichers, von Speicherdump (unter Windows Abbilddatei genannt). Auszüge aus einer Datenbank werden als Datenbankdump bezeichnet, das Abbild oder der Ausschnitt einer Datei als Dateidump (englisch file dump). Sie dienen als Datensicherung oder können zur Migration genutzt werden.

### Core dump

Unter weitgehend allen Betriebssystemen werden Speicherdumps nach dem Auftreten schwerer Fehler automatisch erzeugt oder können per programmiertem Aufruf gezielt erstellt werden.
Unter Linux und Unix wird zum Beispiel nach einem Absturz der sogenannte coredump erstellt, hierbei wird der Speicher des abgestürzten Prozesses in eine Datei geschrieben und kann später mit einem Debugger analysiert werden. Der Name coredump leitet sich vom Kernspeicher (englisch core memory) ab, einer frühen Form der Hauptspeicher in Rechnersystemen. Diese Speicherabzüge des Register- und Hauptspeicherabbilds eines Prozesses werden auch Post-Mortem-Dumps genannt, von lateinisch post mortem (deutsch „nach dem Tode“).
Bei Microsoft-Betriebssystemen erzeugt der Windows-Systemdienst Dr. Watson nach einem Absturz einen Dump mit der Dateiendung .dmp.

### Dateisystem-Dump

Unter Linux oder Unix gibt es Programme wie dump und dd, mit denen u. a. ganze Dateisysteme oder der Inhalt von Blockgeräten mit hohem Datendurchsatz gesichert (oder überschrieben) werden kann.

### Hexdump

Hexdump bezeichnet die Darstellung von Computerdaten im hexadezimalen Zahlensystem (in dem sich pro Ziffer vier Bit zusammenfassen lassen). Möchte man Daten (im RAM oder in Dateien) systemnah analysieren, so ist eine hexadezimale Darstellung oft unerlässlich.
Beispiel:
Unter DOS kann man mit dem DEBUG-Befehl Hexdumps erhalten, unter CP/M mit dump.
Unix-Systeme stellen zur Erstellung eines Hexdumps Befehle wie „hexdump“ bereit, die oft zusätzliche Ausgabeoptionen (Dezimaldarstellung, Textdarstellung) enthalten. Mit „od -x“ (octaldump) kann ebenfalls ein Dump erstellt werden.
Das folgende Beispiel zeigt den Hexdump einer Textdatei im ASCII-Code. Links ist eine (hexadezimale) Positionsangabe (Adresse) in der Datei, in der Mitte sind die Zeichen in ihrer Hexadezimaldarstellung (16 Zeichen, in zwei Gruppen von je 8 Zeichen) und rechts als Text angegeben, wobei Speicherinhalte, die kein darstellbares Zeichen repräsentieren, als „.“ gezeigt werden.
Nach demselben Schema würde ein Speicherdump den Inhalt des Hauptspeichers, also zum Beispiel Programmbefehle im Maschinencode bzw. sich im Hauptspeicher befindliche Daten im jeweiligen Speicherformat zeigen.