Dom zvučni Što je greška segmentacije (segfault)? - definicija iz tehopedije

Što je greška segmentacije (segfault)? - definicija iz tehopedije

Sadržaj:

Anonim

Definicija - Što znači greška segmentacije (Segfault)?

Greška segmentacije (segfault) je greška koju hardver vraća sa zaštitnom memorijom koja operativnom sustavu poručuje da je došlo do povrede pristupa memoriji. Operativni sustav obično reagira tako što signalizira prekršljivom procesu grešku putem signala, a zatim OS izvodi neku vrstu korektivne radnje. To se događa zato što proces ili program pokušava pristupiti memoriji koja mu nije dodijeljena.

Greška segmentacije poznata je i kao kršenje pristupa.

Tehopedia objašnjava grešku segmentacije (Segfault)

Greška segmentacije često je uzrokovana pogreškama u programiranju procesa ili aplikacije u kojima se program vodi do pristupne memorije koja mu nije dodijeljena, već za ostale programe ili za sam sustav. Procesu nije dopušteno dodirivati ​​memoriju koja nije rezervirana za njega, jer ona uvijek mora zahtijevati memoriju prije upotrebe. Stoga, kad se slučajno dotakne memorije koja mu nije dodijeljena, dolazi do kršenja pristupa.


Segfaultovi mogu biti uzrokovani i rekurzivnom funkcijom koja može iskoristiti sav dodijeljeni snop prostora i brzo se upasti u memoriju koja mu nije dodijeljena. U nekim se sustavima ovo smatra prekrivanjem snopa, ali za druge je to jednostavno svojevrsno kršenje pristupa.


Kvar segmentacije može se riješiti procesom preko prilagođenog alata za obradu signala, ali često se koristi zadani rukovatelj signala OS-a, što obično rezultira time da se prekršajni proces prekine, naziva se padom ili OS prisiljava na ispadanje jezgre.,

Što je greška segmentacije (segfault)? - definicija iz tehopedije