我正在检查的几个崩溃,所有的信号SIGSEGV与原因SEGV_ACCERR。在搜索SEGV_ACCERR之后,我发现最接近人类可读的解释是:对象的无效权限。
从更普遍的意义上讲,这意味着什么?什么时候会出现SEGV_ACCERR?是否有更多关于这个原因的具体文件?
发布于 2014-09-16 20:22:03
这是我在64位iOS设备上看到的一个错误,如果多个线程在ARC下读取和更改变量,就会发生这种错误。例如,我修复了今天的一次崩溃,多个后台线程正在读取和使用静态NSDate和NSString变量,并在不执行任何锁定或排队的情况下更新它们。
在多个线程上使用核心数据对象也可能导致这种崩溃,正如我在崩溃日志中多次看到的那样。
我还使用了Crittercism,这个特定的崩溃是一个只影响64位设备的SEGV_ACCERR。
发布于 2019-02-19 13:32:44
正如sigaction手册页所述,SEGV_ACCERR是SIGSEGV的信号代码,它指定映射对象的无效权限。与SEGV_MAPERR相反,它意味着地址没有映射到有效的对象,SEGV_ACCERR意味着该地址匹配一个对象,但是可以肯定的是,它既不是好的对象,也不是进程允许访问的对象。
发布于 2016-05-31 09:45:56
在代码试图从"text“以外的地方执行的情况下,我看到了这种情况。
例如,如果指针指向堆或堆栈中的函数,并且试图执行该代码(从堆或堆栈),CPU将抛出此异常。
https://stackoverflow.com/questions/19119943
复制相似问题