Was ist ein 'Absturz' genau?
Was passiert wenn ein Program abstürzt? Ich bin Laie deshalb dachte ich, frage ich Leute die sich auskennen.
3 Antworten
Das kann ganz verschiedene Hintergründe haben.
Ein Programm kann sich "aufhängen"
- durch einen unerwarteten Pfad in eine Endlosschleife geraten
- einen "Deadlock" verursachen
- endlos auf etwas warten, dass aus irgend einem Grund nicht eintritt (externe Abhängigkeiten, inkorrekte Synchronisation, etc.)
- usw.
Ein Programm kann "abstürzen"
- einen unerwarteten Zustand erreichen und sich aus Sicherheitsgründen selbst ausschalten
- einen (seg- / general protection-) fault verursachen (z. B. geschützte Bereiche des Arbeitsspeichers antasten, eine geschützte oder nicht vorhandene Anweisung ausführen, als nicht ausführbar markierte Daten ausführen, etc.)
- Eine "Trap" (Sicherheitstest) auslösen und nicht selbst verarbeiten; z. B. durch Null teilen, einen arithmetischen Überlauf auslösen (dagegen wird jedoch z. B. in C nicht getestet)
- höhere Sicherheitsgarantien einer Sprache verletzen und von der Runtime ausgeschaltet werden
- zum Erhalt bei Ressourcenmangel anderer "wichtigerer" Programme vom Betriebssystem (Kernel) terminiert werden
- von anderen "normalen" Programmen oder der Ausführungsumgebung ein Signal bekommen, sich zu schließen (z. B. SIGKILL)
- usw.
Es gibt unzählige Möglichkeiten; was genau der Fall ist, lässt sich oft nur schwer feststellen.
ein Programm stürzt ab, wenn ein Error entsteht
das entsteht durch schlechte Programmierung, fehlende Zugriffsrechte, oder anderen Faktoren. Sollte das Programm kein Mechanismus zum Hantieren von Errors haben (daher auch ‚unhandled exception‘)
Überlastung des Computers, Cpu, Memory, …, kann auch zum Absturz führen
ajkcdajefiu~
Wenn ein Softwareprogramm „abstürzt“, bedeutet dies, dass das Programm auf einen unerwarteten Fehler oder eine nicht behebbare Situation gestoßen ist, die es daran hindert, ordnungsgemäß zu funktionieren. Je nach Schwere des Absturzes kann das Programm einfach aufhören zu funktionieren, einfrieren oder ganz beendet werden