什么是SEGV_MAPERR?
答
这是一个分段错误。最可能的是一个悬而未决的指针问题,或某种缓冲区溢出。
SIGSSEGV
是根据问题,分段故障终止它的信号。
检查悬挂指针以及溢出问题。
启用核心转储将帮助您确定问题。
答
常见的有两种类型的SEGV,这是从无效的内存访问会导致错误:
- 一个页面被访问其中有错误的权限。例如,它是只读的,但您的代码试图写入它。这将报告为SEGV_ACCERR。
- 访问的页面甚至没有映射到应用程序的地址空间中。这通常会由于解除引用空指针或被小整数值损坏的指针而导致。这报告为SEGV_MAPERR。
SEGV_MAPERR的排序(索引Linux源代码)的文档位于:http://lxr.free-electrons.com/ident?i=SEGV_MAPERR。
为什么http://stackoverflow.com/a/1000010/358475这个答案更完整且有帮助时被标记为答案? – OldPeculier 2015-04-28 16:56:10