← Back to team overview

sslug-teknik team mailing list archive

Re: Ændre i et Linux boot image

 

>
>
> On Fri, 13 Oct 2006, Jørgen Heesche wrote:
>
>> Fejlmeddelelsen segmentation fault (eller den egenlig meget gode
>> oversættelse: lagersegmentfejl) er måske umiddelbart lidt kryptisk: man
>> skal
>> vide lidt om, hvordan en computer arbejder, eller rettere hvordan memory
>> (hukommelsen, det interne lager) administreres.
>> Et program skal bede om at få adgang til en del af det frie område i
>> memory
>> (allocate memory) før der kan skrives i det. Hvis et program adresserer
>> uden
>> for det allokerede område fås fejlmeddelelsen 'segmentation fault'. I
>> det
>> aktuelle tilfælde forsøger programmet at lagre en datablok, der er for
>> stor
>> til det tildelte lagerområde. Det er også en fejladressering.
>>
>> Og med hensyn til et 'højt udviklet fejlmeldingsystem': meddelelsen
>> 'segmentation fault' er entydig.
>>
>
> Det er fordi du ser det fra en meget mekanisk side. Hvis dit barn kommer
> stortudende ind ad døren og her må jeg muligvis bede dig om at bruge din
> fantasi. Hvad er så årsagen? Måske er ungen faldet på cyklen og har
> brækket benet, måske har naboens grimme køter gøet og forskrækket dit
> yndige afkom eller måske er ungerne blevet uenige, om hvis tur det er til
> at gynge. Du kan ikke ud fra at ungen tuder afgøre, hvilken af de tre
> udsagn der er den rigtige. Altså om der er tale om noget alvorligt eller
> en bagatel.
>
> På samme måde kan en Lagersegmentfejl dække over en simpel tastefejl fra
> brugerens side,

Nej. Hvis en simpel tastefejl under brug af et program kan få programmet
til at forårsage en lagersegmentfejl, så er årsagen en meget alvorlig
programmeringsfejl i programmets inputhåndtering.

> en manglende eller fejlholdig konfigurationsfil

Nej. Hvis en manglende (eller fejludfyldt) konfigurationsfil kan få
programmet til at forårsage en lagersegmentfejl, så er årsagen en meget
alvorlig programmeringsfejl i konfigurationsrutinerne i programmet.

> til en
> egentlig alvorlig programeringsfejl. Man skal kende programmets kildekode
> ret godt for at afgøre, hvad der er rigtigt.

Nej. Lagersegmentfejl kan kun skyldes at et program prøver at tilgå
hukommelse uden for dets eget område. Dette vil normalt skyldes enten at
en løkke i programmet tæller længere end den reserverede hukommelse
(buffer overflow - en af de vigtigste årsager til sikkerhedshuller i
software) eller at programmet prøver at bruge noget hukommelse efter at
den har afleveret den til systemet igen.

Kun hvis man oplever en lagersegmentfejl ved at køre et meget gennemprøvet
program på meget gennemprøvet data, bør man mistænke RAM eller anden
hardware. Og hvis der ikke er tale om en hardwarefejl, så er der altid
tale om en alvorlig programmeringsfejl.

Med venlig hilsen

Ole
>
> Mvh. Bo
>
>




Follow ups

References