Innehållsförteckning:
- Definition - Vad betyder Segmentation Fault (Segfault)?
- Techopedia förklarar Segmentation Fault (Segfault)
Definition - Vad betyder Segmentation Fault (Segfault)?
Ett segmenteringsfel (segfault) är ett fel som returneras av hårdvara med minnesskydd som säger till operativsystemet att en minnesåtkomstbrott har inträffat. Operativsystemet reagerar vanligtvis genom att berätta den kränkande processen om felet genom en signal och sedan utför operativsystemet någon form av korrigerande åtgärder. Detta händer eftersom en process eller ett program försöker få åtkomst till minne som inte är tilldelat det.
Ett segmenteringsfel kallas också en åtkomstbrott.
Techopedia förklarar Segmentation Fault (Segfault)
Ett segmenteringsfel orsakas ofta av fel i programmeringen av en process eller applikation där programmet leds till åtkomstminne som inte tilldelades för det utan för andra program eller för själva systemet. En process får inte röra minne som inte är reserverat för det, eftersom det alltid måste begära minne innan det används. Därför inträffar en åtkomstbrott när den av misstag vidrör minnet som inte har tilldelats det.
Segfaults kan också orsakas av en rekursiv funktion, som kan utnyttja allt stackutrymme som det tilldelas och snabbt komma in i minnet som inte tilldelats det. I vissa system betraktas detta som ett överflöde av stacken, men för andra är det helt enkelt en slags åtkomstöverträdelse.
Ett segmenteringsfel kan hanteras av en process genom en anpassad signalhanterare, men ofta är det operativsystemets standardsignalhanterare som används, vilket vanligtvis resulterar i att den kränkande processen avslutas onormalt, kallas en krasch eller att OS tvingar en kärndump .
