Was ist ein Core Dump?
Ein Core-Dump ist eine Aufzeichnung des Speicherinhalts eines Computers, wenn ein schwerwiegender Fehler aufgetreten ist. Dies kann den gesamten Systemspeicher oder nur den Teil umfassen, der vom fehlgeschlagenen Programm verwendet wurde. Es kann auch andere relevante Daten wie den Prozessorstatus, Registerinhalte und Informationen über laufende Prozesse enthalten. Softwareentwickler verwenden häufig Core-Dumps mit Debuggern und anderen Dienstprogrammen, um Computerfehler zu analysieren und zu beheben. Ein Core-Dump kann auch verwendet werden, um einen Arbeitsprozess während des normalen Betriebs von einem Prozessor auf einen anderen zu übertragen.
Der Begriff "Core Dump" entstand wahrscheinlich in den 1960er Jahren, als frühe Computer Magnetkernspeicher verwendeten. Als ein laufendes Programm abstürzte, wurden alle Daten im gesamten Kern auf Papier ausgedruckt, um das Debuggen zu erleichtern. Diese Ausdrucke bestanden normalerweise nur aus Speicheradressen und Daten in oktaler oder hexadezimaler Schreibweise. Mit der Verbesserung der Speichertechnologien konnten Core-Dumps auf Festplatte, entfernbarem Magnetband oder nichtflüchtigen Speichersticks gespeichert werden. Eine größere Speicherkapazität für Statusinformationen sowie Fortschritte beim Debuggen von Software haben die Fehlerdiagnose effizienter gemacht.
Typische Ursachen für Core-Dumps sind schlecht geschriebene Anwendungen oder Systemsoftware. Sehr oft wird im Programmcode davon ausgegangen, dass Zeiger und Array-Indizes immer auf gültige Datenstrukturen verweisen. Wenn sich eine dieser Komponenten über die Grenzen ihrer ursprünglichen Struktur hinausbewegt hat, kann es beispielsweise zu einem Core-Dump kommen. Probleme beim Zugriff auf Datendateien auf einem Speichergerät oder beim Lesen beschädigter Daten können ebenfalls zu einem Core-Dump führen. Hardwareprobleme, einschließlich fehlerhafter Speicher, Festplatten oder Prozessoren, können diese ebenfalls auslösen.
Grundsätzlich gibt es zwei Arten von Core-Dumps. Ein Typ ist der, bei dem der laufende Prozess oder das Anwendungsprogramm beendet wird und die Steuerung an das Betriebssystem zurückgegeben wird. In diesem Fall funktioniert der Rest des Systems normal weiter, da nur das fehlerhafte Programm gestoppt wurde. In der Regel wird eine große Core-Dump-Datei generiert, die dann in einen Debugger geladen werden kann. Wenn der Fehler in einem Programm aufgetreten ist, für das die Symbole und der Quellcode verfügbar sind, können diese ebenfalls in den Debugger geladen werden.
Die andere ernstere Art von Core-Dump wird auch als Kernel-Panik bezeichnet. Diese Art von Speicherauszug stoppt das gesamte System, um weitere Komplikationen und Datenverfälschungen zu vermeiden. Auf Microsoft Windows®-Systemen tritt diese Art von Speicherauszug normalerweise in der allzu vertrauten Form eines "Blue Screen of Death" auf. Panics wie diese sind normalerweise schwerer zu debuggen und werden oft durch Hardware- oder Systemprobleme verursacht. Diese können vor dem Booten des Systems auftreten, wenn nur wenige Informationen über die tatsächliche Ursache verfügbar sind.