Подтвердить что ты не робот

Что такое SEGV_MAPERR?

Что такое SEGV_MAPERR, почему он всегда придумывает SIGSEGV?

4b9b3361

Ответ 1

Это ошибка сегментации. Скорее всего, проблема с висячим указателем или переполнение буфера.

SIGSSEGV - это сигнал, который завершает его на основе проблемы, ошибки сегментации.

Проверьте наличие оборванных указателей, а также проблему с переполнением.

Включение дампов ядра поможет вам определить проблему.

Ответ 2

Существует два распространенных типа SEGV, который является ошибкой, вызванной недопустимым доступом к памяти:

  • Доступ к странице, у которой были неправильные разрешения. Например, он был доступен только для чтения, но ваш код попытался написать ему. Это будет сообщено как SEGV_ACCERR.
  • Доступ к странице, которая даже не отображается в адресное пространство приложения. Это часто возникает в результате разыменования нулевого указателя или указателя, который был поврежден с помощью небольшого целочисленного значения. Об этом сообщается как SEGV_MAPERR.

Документация о сортировке (индексированный исходный код Linux) для SEGV_MAPERR находится здесь: http://lxr.free-electrons.com/ident?i=SEGV_MAPERR.