VVD. Maakt crises erger 🏚️ .
Zucmantaks, nu 💰 !
De mythe van de zelfredzame burger 🦄 .
Komt erop neer, dat het meestal hetzelfde is als die vage messages van windows (waarbij gezegd wordt dat er een geheugen fout was oid) en soms hetzelfde als een BSOD 
Alleen overlijdt je PC dan niet direct zoals bij win98...
Komt er op neer, dat het juist NIET precies te vertellen is wat het is
Alleen overlijdt je PC dan niet direct zoals bij win98...
Komt er op neer, dat het juist NIET precies te vertellen is wat het is
Verwijderd
Kort samengevat: het is een programmeerfout.
Eerst wat uitleg: een programma bestaat praktisch(op heel kleine programmaatjes na misschien) altijd uit verschillende functies. Een functie is een blok programma code die door een andere functie wordt aangeroepen, als de functie ten einde 'springt' de cpu weer terug naar de functie die de desbetreffende functie aanriep. Alle variabelen(stukjes geheugen die data bewaren, bijvoorbeeld een stukje geheugen die de invoer van het toetsenbord bewaard) staan op de stack, de stack is een stuk geheugen waar alle variablen als het ware op elkaar gestapeld worden(eigenlijk onder elkaar op x86, maar das niet relevant). Op de stack wordt ook het return address bewaart, die point naar het stuk code waar naar toe gesprongen moet worden als de des betreffende functie ten einde is.
Als er nou een variable op de stack overflowed wordt(meer data in de variable stoppen dan er in past) dan wordt die data over eerder variablen heen geschreven, als 1 van die eerdere variablen die overschreven wordt het return address is kun je een segmentation fault krijgen.
Als bijvoorbeeld een functie wordt aangeroepen door een functie die zich op geheugen locatie 0x12345678 bevindt (ik noem maar wat willekeurigs), dan wordt het return address op 0x12345678 gezet. Als er in deze functie nou een variable gevult wordt met allemaal A's en die variable wordt geoverflowed en het return address wordt overschreven met A's dan ziet het return address er zo uit: 0X41414141 (de A is in de ascii tabel 41 in hexadecimaal), de kans dat 0x41414141 een geldig geheugen address is wat geldige code bevat is heel klein, als de cpu dan daar naar toe wil springen en bemerkt dat dat address niet meer klopt, dan segfault ie. Dit wordt ook wel gebruikt door 'hackers' om zodoende hun eigencode te kunnen laten uitvoeren door bijvoorbeeld een webserver
Een segfault kun je ook krijgen bij bepaalde kill.
[edit2] zie edit1 [/edit2]
Eerst wat uitleg: een programma bestaat praktisch(op heel kleine programmaatjes na misschien) altijd uit verschillende functies. Een functie is een blok programma code die door een andere functie wordt aangeroepen, als de functie ten einde 'springt' de cpu weer terug naar de functie die de desbetreffende functie aanriep. Alle variabelen(stukjes geheugen die data bewaren, bijvoorbeeld een stukje geheugen die de invoer van het toetsenbord bewaard) staan op de stack, de stack is een stuk geheugen waar alle variablen als het ware op elkaar gestapeld worden(eigenlijk onder elkaar op x86, maar das niet relevant). Op de stack wordt ook het return address bewaart, die point naar het stuk code waar naar toe gesprongen moet worden als de des betreffende functie ten einde is.
Als er nou een variable op de stack overflowed wordt(meer data in de variable stoppen dan er in past) dan wordt die data over eerder variablen heen geschreven, als 1 van die eerdere variablen die overschreven wordt het return address is kun je een segmentation fault krijgen.
Als bijvoorbeeld een functie wordt aangeroepen door een functie die zich op geheugen locatie 0x12345678 bevindt (ik noem maar wat willekeurigs), dan wordt het return address op 0x12345678 gezet. Als er in deze functie nou een variable gevult wordt met allemaal A's en die variable wordt geoverflowed en het return address wordt overschreven met A's dan ziet het return address er zo uit: 0X41414141 (de A is in de ascii tabel 41 in hexadecimaal), de kans dat 0x41414141 een geldig geheugen address is wat geldige code bevat is heel klein, als de cpu dan daar naar toe wil springen en bemerkt dat dat address niet meer klopt, dan segfault ie. Dit wordt ook wel gebruikt door 'hackers' om zodoende hun eigencode te kunnen laten uitvoeren door bijvoorbeeld een webserver
Een segfault kun je ook krijgen bij bepaalde kill.
edit:
min of meer logische verhaal gemaakt
min of meer logische verhaal gemaakt
[edit2] zie edit1 [/edit2]