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 im Zeichenformat, 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. 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.[1]
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.
00000000 48 69 65 72 20 69 73 74 20 65 69 6e 20 42 65 69 |Hier ist ein Bei| 00000010 73 70 69 65 6c 74 65 78 74 2e 20 44 65 72 20 48 |spieltext. Der H| 00000020 65 78 64 75 6d 70 20 69 73 74 20 61 75 66 20 64 |exdump ist auf d| 00000030 65 72 20 6c 69 6e 6b 65 6e 20 53 65 69 74 65 20 |er linken Seite | 00000040 7a 75 20 73 65 68 65 6e 2e 0a 0a 4e 65 75 65 20 |zu sehen...Neue | 00000050 5a 65 69 6c 65 6e 20 6f 64 65 72 20 41 62 73 e4 |Zeilen oder Absä| 00000060 74 7a 65 20 73 69 6e 64 20 64 61 6e 6e 20 61 75 |tze sind dann au| 00000070 63 68 20 22 5a 65 69 63 68 65 6e 22 20 6d 69 74 |ch "Zeichen" mit| 00000080 20 65 69 6e 65 6d 20 62 65 73 74 69 6d 6d 74 65 | einem bestimmte| 00000090 6e 0a 43 6f 64 65 2e 28 30 61 29 2e 2e 2e 0a 0a |n.Code.(0a).....|
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.