Crash [1] [2] (även krasch [1] [2] , olycka [3] [2] , fatal failure [ 2] , krasch , krasch , krasch ) är ett kraschprogram eller operativsystem när de slutar fungera normalt .
Ofta hänger programmet på tills en felrapport genereras med detaljerna om felet.
Om programmet är en viktig del av operativsystemet, kan hela systemet krascha eller hänga sig som ett resultat av kärnpanik eller allvarligt systemfel.
De flesta fel är resultatet av exekvering av ogiltiga maskininstruktioner . Till exempel, när programräknaren är inställd på fel adress , eller som ett resultat av ett buffertspill , skrivs en del av programdata över på grund av ett fel . Detta resulterar i åtkomst till slumpmässiga datavärden i minnet som inte längre matchar den initiala begäran, och hantering av undantag i processorn inträffar .
Det ursprungliga programvarufelet som startade denna händelsekedja anses generellt vara orsaken till kraschen som upptäcks under felsökningsprocessen . Detta är ofta långt ifrån uppenbart, eftersom det ursprungliga felet kan vara långt ifrån en kraschhändelse och verkar vara helt giltig källkod .
En applikation avslutas vanligtvis när den utför en operation som inte är tillåten av operativsystemet. Operativsystemet skickar sedan ett undantag eller en signal i applikationen .
Unix - applikationer svarar traditionellt på en signal med en minnesdump . De flesta Windows- och Unix GUI-applikationer svarar genom att visa en dialogruta med alternativet att bifoga en debugger om en sådan är installerad.
Vissa program försöker återhämta sig från ett fel och fortsätta istället för att avsluta.
Vanliga fel som gör att program kraschar inkluderar:
En applikation som körs på en webbserver kan misslyckas och webbplatsen kanske inte fungerar eller visar ett felmeddelande.
Till exempel, om en webbplats som använder en SQL-databas (som MySQL ) använder ett skript (som PHP ) och den servern kraschar, kommer PHP att skapa ett anslutningsfel.