Помилка сегментації

Помилка сегментації (англ. Segmentation fault) — помилка програмного забезпечення, що виникає при виконанні програми при спробі звернення до відсутніх або захищених від запису ділянок оперативної пам'яті, або при спробі зміни пам'яті забороненим способом (Що це?).

Сегментна адресація пам'яті є одним із підходів до організації, керування і захисту оперативної пам'яті в операційній системі. На окремих апаратних платформах та/або окремих операційних системах вона була доповнена або замінена сторінковою пам'яттю, проте в документаціях за традицією використовують термін «Помилка сегментації». Деякі операційні системи досі використовують сегментацію на деяких логічних рівнях, а сторінкова пам'ять використовується як основна політика управління пам'яттю.

В UNIX-подібних операційних системах процес, який звертається до недійсних ділянок пам'яті, отримує сигнал SIGSEGV. У Microsoft Windows цей процес створює виняток STATUS_ACCESS_VIOLATION, і, як правило, запускає програму налагоджувача Dr. Watson, яка показує користувачеві вікно з пропозицією відправити звіт про помилку Microsoft.

Приклади ред.

Приклад коду мовою ANSI C, який, як правило, призводить до помилки сегментації на платформах із захистом пам'яті при читанні:

int main() { int *p = 0; int a = *p; return 0;}

Після запуску змінна p містить нульову адресу службової області пам'яті, яка звичайно доступна лише ядру ОС, спроба прочитати значення за цією адресою призводить до помилки сегментації.

Приклад програми мовою ANSI C, яка, як правило, призводить до помилки сегментації на платформах із захистом пам'яті при запису:

int main() { const char *s = "hello world"; *(char *)s = 'H'; return 0;}

При компіляції програми рядок «hello world» буде розміщений в секції програми з бінарною позначкою «тільки для читання». При запуску програми операційна система завантажує цю секцію в сегмент пам'яті, призначений тільки для читання. Після запуску змінна s вказує на адресу рядка, а спроба змінити значення символьної константи h в цій області пам'яті призводить до помилки сегментації.

Див. також ред.



🔥 Top keywords: Усик Олександр ОлександровичТайсон Ф'юріТайсон Ф'юрі — Олександр УсикГоловна сторінкаФайл:XHamster logo.svgКличко Володимир ВолодимировичКличко Віталій ВолодимировичСписок абсолютних чемпіонів світу з боксуPorno for PyrosСпеціальна:ПошукРезерв+Кабул 9Володимир Кличко — Тайсон Ф'юріМайріс БрієдісВасилюк Денис ОлександровичЛомаченко Анатолій МиколайовичЛомаченко Василь АнатолійовичMegogoЕнтоні ДжошуаСписок чемпіонів світу з боксу у важкій вазіТериторіальний центр комплектування та соціальної підтримкиБріджертони831-ша бригада тактичної авіації (Україна)Леннокс ЛьюїсБерінчик Денис ЮрійовичМайк ТайсонФайл:XVideos logo.svgВійськово-облікова спеціальністьНова КаледоніяДепортація кримських татарВовчанськОрден «За заслуги» (Україна)YouTubeУкраїнаІвана 3:16Будинок «Слово» (фільм, 2021)Будинок «Слово»Вагові категорії в боксіМикола Хвильовий