Indholdsfortegnelse:
- Definition - Hvad betyder Segmentation Fault (Segfault)?
- Techopedia forklarer Segmentation Fault (Segfault)
Definition - Hvad betyder Segmentation Fault (Segfault)?
En segmenteringsfejl (segfault) er en fejl, der returneres af hardware med hukommelsesbeskyttelse, der fortæller operativsystemet, at der er opstået en overtrædelse af hukommelsesadgang. Operativsystemet reagerer normalt ved at fortælle den fornærmede proces om fejlen gennem et signal, og derefter udfører operativsystemet en slags korrigerende handling. Dette sker, fordi en proces eller et program forsøger at få adgang til hukommelse, der ikke er tildelt den.
En segmenteringsfejl er også kendt som en adgangsovertrædelse.
Techopedia forklarer Segmentation Fault (Segfault)
En segmenteringsfejl er ofte forårsaget af fejl i programmeringen af en proces eller applikation, hvor programmet føres til adgangshukommelse, der ikke blev tildelt til det, men til andre programmer eller til selve systemet. En proces må ikke røre hukommelse, der ikke er forbeholdt den, da den altid skal anmode om hukommelse, før den bruges. Derfor, når den ved et uheld berører hukommelse, der ikke er tildelt den, opstår der en adgangsovertrædelse.
Segfaults kan også være forårsaget af en rekursiv funktion, der kan udnytte al den stakplads, den er tildelt, og hurtigt indgreb i hukommelsen, der ikke er tildelt den. I nogle systemer betragtes dette som et stakoverløb, men for andre er det simpelthen en slags adgangsovertrædelse.
En segmenteringsfejl kan håndteres af en proces gennem en brugerdefineret signalhåndterer, men ofte er det OS's standardsignalhåndterer, der bruges, hvilket normalt resulterer i, at den fornærmede proces afsluttes unormalt, kaldet et nedbrud, eller OS opererer en kernedump .
