Зміст:
- Визначення - Що означає помилка сегментації (Segfault)?
- Техопедія пояснює помилку сегментації (Segfault)
Визначення - Що означає помилка сегментації (Segfault)?
Помилка сегментації (segfault) - це помилка, повернута апаратом із захистом пам’яті, який повідомляє операційній системі про порушення доступу до пам'яті. Операційна система, як правило, реагує, повідомляючи порушник про помилку через сигнал, і тоді ОС виконує якусь коригувальну дію. Це відбувається тому, що процес або програма намагаються отримати доступ до пам'яті, яка не призначена йому.
Помилка сегментації також відома як порушення доступу.
Техопедія пояснює помилку сегментації (Segfault)
Помилка сегментації часто викликається помилками в програмуванні процесу чи програми, в яких програма ведеться до пам’яті доступу, яка не була виділена для неї, а для інших програм або для самої системи. Процес забороняється торкатися пам'яті, не зарезервованої для нього, оскільки він завжди повинен запитувати пам'ять перед її використанням. Тому, коли він випадково торкається пам'яті, яка йому не призначена, відбувається порушення доступу.
Segfaults також може бути спричинена рекурсивною функцією, яка може використовувати весь призначений для нього стек і швидко посягати на не присвоєну йому пам'ять. У деяких системах це вважається переповненням стека, але для інших це просто своєрідне порушення доступу.
Несправність сегментації може бути оброблена процесом через користувальницький обробник сигналів, але часто використовується обробник сигналу за замовчуванням в ОС, який зазвичай призводить до порушення аномального процесу порушення, який називається збоєм, або ОС примушує вивантажувати ядро. .
