关于正向websocket相关crash求助

关于正向websocket相关crash求助

问题描述: 基于websocket开发了一套im系统,使用fabric的crash收集机制,收集到了一个crash为websocket中的崩溃,这个崩溃为偶现,自己测试没复现出来.

crash信息
# OS Version: 10.3.3 (14G60)
# Device: iPhone 6 Plus
# RAM Free: 9.5%
# Disk Free: 32.1%

#5. Crashed: Thread
0  CoreFoundation                 0x191f97d9c CFDictionaryGetValue + 76
1  Foundation                     0x192b7ceb8 _NSSetLongLongValueAndNotify + 72
2  PalmDoctorPT                   0x1001975a8 __30-[SRWebSocket _failWithError:]_block_invoke (SRWebSocket.m:767)
3  libdispatch.dylib              0x190f7a9e0 _dispatch_call_block_and_release + 24
4  libdispatch.dylib              0x190f7a9a0 _dispatch_client_callout + 16
5  libdispatch.dylib              0x190f88ad4 _dispatch_queue_serial_drain + 928
6  libdispatch.dylib              0x190f7e2cc _dispatch_queue_invoke + 884
7  libdispatch.dylib              0x190f88fa8 _dispatch_queue_override_invoke + 344
8  libdispatch.dylib              0x190f8aa50 _dispatch_root_queue_drain + 540
9  libdispatch.dylib              0x190f8a7d0 _dispatch_worker_thread3 + 124
10 libsystem_pthread.dylib        0x191183100 _pthread_wqthread + 1096
11 libsystem_pthread.dylib        0x191182cac start_wqthread + 4

上述crash信息中提到的 (SRWebSocket.m:767) 代码如下
image

第767行 SRFastLog的代码如下
image

跪求大佬指点!

出问题的应该这里
self.readyState = SR_CLOSED;
可能是 关闭了2次。

您是指766行 这个方法多次调用过吗? 如果对象没销毁的情况下,两次set如何crash? 麻烦能详细写说明下吗?

只能知道崩溃发生在一次kvo事件之后

BLX _object_getClass
BLX _object_getIndexedIvars
MOV R5, R0
ADD.W R8, R5, #0x10
MOV R0, R8 ; mutex
BLX _pthread_mutex_lock
LDR R0, [R5,#0xC]
MOV R1, R11
BL.W CFDictionaryGetValue

所以崩溃是什么类型的异常?

多谢大神提点,我可能知道是什么问题引起的了.我一直纠结这个fabric 的崩溃代码,忽略了这个kvo调用了.

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 类型的