我在
android中看到了这2个分段
错误.
一个说SEGV_MAPERR,另一个说SEGV_ACCERR.
你能告诉我这两个有什么不同吗?
signal 11 (SIGSEGV),code 1 (SEGV_MAPERR),fault addr 41963214
signal 11 (SIGSEGV),code 2 (SEGV_ACCERR),fault addr 4006e000
谢谢.
每
siginfo.h:
SEGV_MAPERR表示您尝试访问未映射到任何内容的地址.
SEGV_ACCERR表示您尝试访问您无权访问的地址.
因此,在这两种情况下,您都访问了一个您不应该拥有的地址,这可能是您的实际代码唯一有害的地址.在前一种情况下,无论如何在该地址范围内都没有记忆.在后一种情况下,该地址范围内有内存,但您不拥有它.
如果您要访问随机地址,那么您获得的取决于操作系统在此时如何设置您的流程.