一尘不染

什么是SEGV_MAPERR?

linux

是什么SEGV_MAPERR,为什么总是想出来SIGSEGV呢?


阅读 1913

收藏
2020-06-03

共1个答案

一尘不染

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

  1. 访问了具有错误权限的页面。例如,它是只读的,但是您的代码试图写入它。这将报告为SEGV_ACCERR
  2. 访问的页面甚至根本没有映射到应用程序的地址空间。这通常是由于取消引用空指针或使用小整数值损坏的指针引起的。报告为SEGV_MAPERR

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

2020-06-03