Оглавление:
- Определение - что означает ошибка сегментации (Segfault)?
- Техопедия объясняет ошибку сегментации (Segfault)
Определение - что означает ошибка сегментации (Segfault)?
Ошибка сегментации (segfault) - это ошибка, возвращаемая аппаратным обеспечением с защитой памяти, которое сообщает операционной системе, что произошло нарушение доступа к памяти. Операционная система обычно реагирует, сообщая об ошибке процессу об ошибке через сигнал, а затем ОС выполняет какие-то корректирующие действия. Это происходит потому, что процесс или программа пытается получить доступ к памяти, которая ему не назначена.
Ошибка сегментации также называется нарушением доступа.
Техопедия объясняет ошибку сегментации (Segfault)
Ошибка сегментации часто вызывается ошибками в программировании процесса или приложения, в которых программа направляется в память, которая была выделена не для него, а для других программ или для самой системы. Процессу не разрешается касаться памяти, не зарезервированной для него, поскольку он всегда должен запрашивать память перед использованием. Поэтому, когда он случайно касается памяти, которая ему не назначена, происходит нарушение доступа.
Ошибки могут также быть вызваны рекурсивной функцией, которая может использовать все пространство стека, которое ей назначено, и быстро поразить память, не назначенную ей. В некоторых системах это считается переполнением стека, но для других это просто своего рода нарушение доступа.
Ошибка сегментации может быть обработана процессом через пользовательский обработчик сигналов, но часто используется обработчик сигналов по умолчанию в ОС, что обычно приводит к ненормальному завершению процесса, вызывающего сбой, называемому сбоями, или к ОС, вызывающей дамп ядра,
