什么是SEGV_MAPERR?

什么是SEGV_MAPERR ,为什么总是想出SIGSEGV

这是一个分段错误。 很可能是一个悬而未决的指针问题,或某种缓冲区溢出。

SIGSSEGV是基于问题,分段错误终止它的信号。

检查悬挂指针以及溢出问题。

启用核心转储将帮助您确定问题。

有两种常见的SEGVtypes ,这是由无效的内存访问导致的错误:

  1. 一个页面访问权限错误。 例如,它是只读的,但你的代码试图写入它。 这将被报告为SEGV_ACCERR 。
  2. 一个页面被访问甚至没有映射到应用程序的地址空间。 这通常会导致解引用一个空指针或一个小整数值损坏的指针。 这被报告为SEGV_MAPERR 。

SEGV_MAPERR的sorting(索引的Linux源代码)的文档在这里: http ://lxr.free-electrons.com/ident?i=SEGV_MAPERR。