Описание тега segmentation-fault
Ошибки сегментации возникают при доступе к памяти, которая не принадлежит вашему процессу. Они распространены и обычно являются результатом:
- использование указателя на что-то, что было освобождено;
- использование неинициализированного, следовательно, фиктивного указателя;
- с использованием нулевого указателя;
- переполнение буфера; или
- попытка записи в постоянную память
Ошибка возникает не при манипулировании самой переменной-указателем (копирование или присвоение переменной-указатель), а при доступе к памяти, на которую указывает переменная (т. Е. При разыменовании переменной-указателя). Чтобы сгенерировать ошибку сегментации, linux-kernel доставляет сигнал 11 процессу, который сделал незаконный доступ к памяти. Действие по умолчанию при наличии ошибки сегментации - это coredump, создание файла coredump с базовой информацией о процессе.
Поскольку точка, в которой запускается ошибка сегментации, может находиться далеко от места, где среда и действия, которые создают условия для ошибки сегментации, поиск основной причины может быть трудным, особенно в сложном многопоточном приложении.
Ошибка сегментации - это описательная фраза из семейств операционных систем Unix и Linux, обозначающая общий класс поведения, при котором операционная система обнаруживает доступ к памяти процесса вне выделенной памяти процесса, в результате чего операционная система завершает процесс.
Такое поведение требует аппаратной поддержки защищенной памяти, которая может быть недоступна в некоторых микропроцессорах.
Дополнительную информацию можно найти на...
- Что такое ошибка сегментации?
- Окончательный список общих причин ошибок сегментации
- Тема в Википедии о сбоях сегментации
- Тема в Википедии о защите памяти
Если программа вылетела из-за
- несанкционированный доступ к памяти
- использование вне пределов памяти
- использование неинициализированной памяти
и он получил SIGSEGV
и / или создается файл coredump, отметьте свои вопросы с помощью этого тега.