Pregunta

¿Qué es SEGV_MAPERR , por qué siempre aparece con SIGSEGV ?

¿Fue útil?

Solución

Hay dos tipos comunes de SEGV , que es un error que resulta de un acceso de memoria no válido:

  1. Se accedió a una página que tenía los permisos incorrectos. Por ejemplo, era de solo lectura pero su código trató de escribir en él. Esto se informará como SEGV_ACCERR .
  2. Se accedió a una página que ni siquiera está asignada al espacio de direcciones de la aplicación. Esto a menudo resultará de la desreferenciación de un puntero nulo o un puntero que se corrompió con un valor entero pequeño. Esto se informa como SEGV_MAPERR .

La documentación de una ordenación (código fuente de Linux indexado) para SEGV_MAPERR está aquí: http: / /lxr.free-electrons.com/ident?i=SEGV_MAPERR .

Otros consejos

Es una falla de segmentación. Probablemente un problema de puntero que cuelga, o algún tipo de desbordamiento de búfer.

SIGSSEGV es la señal que lo termina según el problema, falla de segmentación.

Compruebe si hay punteros colgantes, así como el problema de desbordamiento.

La habilitación de volcados de núcleo lo ayudará a determinar el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top