18.06.2004, 09:25
|
#2
|
|
Inventar
Registriert seit: 24.09.2001
Beiträge: 7.335
|
Zitat:
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.
|
http://www.galileocomputing.de/openb...u/node179.html
|
|
|