Crash [1] [2] (také havárie [1] [2] , nehoda [3] [2] , fatální porucha [ 2] , havárie , havárie , havárie ) je havárie programů nebo operačního systému , když přestanou normálně fungovat .
Program se často zablokuje , dokud není vygenerováno hlášení o chybě s podrobnostmi o selhání.
Pokud je program důležitou součástí operačního systému, může dojít k selhání celého systému nebo jeho zablokování v důsledku paniky jádra nebo fatální systémové chyby.
Většina selhání je výsledkem provádění neplatných strojových instrukcí . Například, když je počítadlo programu nastaveno na špatnou adresu nebo v důsledku přetečení vyrovnávací paměti , část dat programu je přepsána kvůli chybě . To má za následek přístup k náhodným hodnotám dat v paměti , které již neodpovídají původnímu požadavku, a dochází ke zpracování výjimek v procesoru .
Původní softwarová chyba, která spustila tento řetězec událostí, je obecně považována za příčinu selhání, která je objevena během procesu ladění . To často není zdaleka zřejmé, protože původní chyba může být daleko od havárie a zdá se, že jde o dokonale platný zdrojový kód .
Aplikace se obvykle ukončí, když provede operaci, která není povolena operačním systémem. Operační systém pak v aplikaci vyvolá výjimku nebo signál .
Unixové aplikace tradičně reagují na signál výpisem paměti . Většina aplikací GUI pro Windows a Unix reaguje zobrazením dialogového okna s možností připojit ladicí program , pokud je nainstalován.
Některé aplikace se pokoušejí zotavit z chyby a místo ukončení pokračují.
Mezi běžné chyby, které způsobují pád aplikací, patří:
Aplikace spuštěná na webovém serveru může selhat a stránka nemusí fungovat nebo se může zobrazit chybová zpráva.
Pokud například web používající databázi SQL (jako MySQL ) používá skript (jako PHP ) a tento server se zhroutí, PHP vyvolá chybu připojení.