微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – Segmentation Fault中’code’的含义是什么?

我在 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表示您尝试访问您无权访问的地址.

因此,在这两种情况下,您都访问了一个您不应该拥有的地址,这可能是您的实际代码唯一有害的地址.在前一种情况下,无论如何在该地址范围内都没有记忆.在后一种情况下,该地址范围内有内存,但您不拥有它.

如果您要访问随机地址,那么您获得的取决于操作系统在此时如何设置您的流程.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐