什么是SEGV_MAPERR?

问题描述:

什么是SEGV_MAPERR,为什么总是拿出SIGSEGV什么是SEGV_MAPERR?

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

SIGSSEGV是根据问题,分段故障终止它的信号。

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

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

常见的有两种类型的SEGV,这是从无效的内存访问会导致错误:

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

SEGV_MAPERR的排序(索引Linux源代码)的文档位于:http://lxr.free-electrons.com/ident?i=SEGV_MAPERR

+7

为什么http://*.com/a/1000010/358475这个答案更完整且有帮助时被标记为答案? – OldPeculier 2015-04-28 16:56:10