|
|
Programmzusammenbrüche (Core Dump)Wenn ein Programm unter UNIX Dinge tut, die es nicht darf, dann wird ihm vom System einfach die Betriebserlaubnis entzogen. Zu diesen unerlaubten Beschäftigungen gehört beispielsweise der Griff in den Speicher anderer Prozesse. UNIX teilt den Prozessen klar abgegrenzte Speicherbereiche zu und merkt, wenn ein Prozess in die Systembereiche eindringen möchte. In einem solchen Fall sendet UNIX dem Prozess ein Signal, im letzten Fall SIGSEGV, eine segment violation. Man könnte das frei mit »Grenzverletzung« übersetzen. Wenn UNIX ein Programm auf diese Weise beendet, schreibt es den Speicherbereich des Prozesses in eine Datei namens core, die im aktuellen Arbeitsverzeichnis angelegt wird. Da zum Speicher auch der Stack gehört, kann ein Debugger (siehe S. debug) feststellen, in welcher Funktion der Zusammenbruch erfolgte. Diese Information kann für den Programmierer eine große Hilfe sein. Wenn man als Administrator eine Datei namens core findet, ist zunächst deren Alter interessant. Das Alter gibt Auskunft über den Zeitpunkt des Zusammenbruchs. Ist der verantwortliche Programmierer greifbar, wird er sich für diese Datei interessieren. Ansonsten gehören core-Dateien eher zum lästigen Abfall, der bei der Entwicklung von Software nun einmal entsteht. Darum steht bei einigen Maschinen eine Anweisung in der crontab, alle älteren Dateien namens core zu suchen und zu löschen. Auf einer Produktionsmaschine sollten Core Dumps nicht entstehen. Insofern wäre eine Beseitigung solcher Spuren eines Zusammenbruchs nicht sehr sinnvoll.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|