- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人知道为什么这有时会崩溃吗?我被这个难住了。我猜它在 100 次或类似情况下崩溃了 1 次。
// from header file
struct _PTP_IP_Packet_INIT_EVENT_ACK {
uint32_t ptpIPPacketLength;
uint32_t ptpIPType;
};
typedef struct _PTP_IP_Packet_INIT_EVENT_ACK PTP_IP_Packet_INIT_EVENT_ACK;
#define PTP_IP_PacketLength_INIT_EVENT_ACK (2*sizeof(uint32_t))
崩溃发生在最后一行:
PTP_IP_Packet_INIT_EVENT_ACK eventack;
PTP_CNT_INIT(eventack);
len = [self.myWorker.eventInputStream read:(unsigned char*)&eventack maxLength:PTP_IP_PacketLength_INIT_EVENT_ACK];
崩溃数据:
#24
EXC_BREAKPOINT 0x0000000184045750
Crashed: PTPWork-192.168.1.1
0 CoreFoundation 0x184045750 CFHash + 256
1 CoreFoundation 0x184046c1c CFBasicHashGetCountOfKey + 960
2 CoreFoundation 0x184046810 CFSetContainsValue + 152
3 CoreFoundation 0x18407644c CFRunLoopRemoveSource + 236
4 CFNetwork 0x183b68fcc SocketStream::read(__CFReadStream*, unsigned char*, long, CFStreamError*, unsigned char*) + 520
5 CoreFoundation 0x184072c88 CFReadStreamRead + 520
6 Photobooth 0x1001348a0 -[PTPCamera initializeEventStreams] (PTPCamera.m:188)
7 Photobooth 0x100134398 -[PTPCamera initializePTP] (PTPCamera.m:127)
8 Photobooth 0x1001084b0 -[PTPWorker setState:] (PTPWorker.m:333)
9 Photobooth 0x100107b8c -[PTPWorker main] (PTPWorker.m:222)
10 Foundation 0x18505e308 __NSThread__main__ + 1072
11 libsystem_pthread.dylib 0x195babdc8 _pthread_body + 164
12 libsystem_pthread.dylib 0x195babd24 _pthread_body + 158
13 libsystem_pthread.dylib 0x195ba8ef8 thread_start + 4
最佳答案
EXC_BREAKPOINT 在这种上下文中通常意味着抛出 NSException,这是调试器中断的方便位置。
self.myWorker.eventInputStream 出现问题的两个最可能的原因(并不相互排斥)是
这在 NSThread 中崩溃使得第二个选项成为可能。如果您报告这种情况“100 次或类似事件中有 1 次”,那么第二种选择几乎是确定无疑的。
只是为了确定,将所有使用 self.myWorker.eventInputStream 的东西放在主线程上。如果崩溃立即完全消失,正如预期的那样,那么您需要弄清楚如何正确锁定对流的访问,以便这里的争用问题消失。祝你好运!
关于ios - CFReadStreamRead 中的 EXC_BREAKPOINT 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37358412/
NB: The entire code base for this project is so large that posting any meaningful amount wold render
有人知道为什么这有时会崩溃吗?我被这个难住了。我猜它在 100 次或类似情况下崩溃了 1 次。 // from header file struct _PTP_IP_Packet_INIT_EVENT
我有在 iOS 上使用 CFReadStreamRead 的遗留代码,但如果没有/丢失连接,CFReadStreamRead 将永远阻塞。如何设置 CFReadStreamRead 超时? 提前致谢
我发现一个问题,其中 CFReadStreamRead 作为流式文件上传的一部分,从不 返回。 这似乎只发生在 iOS7⟩ 上,而且在针对物理设备进行调试时比在模拟器中更频繁 或者至少,它在那里更加明
我是一名优秀的程序员,十分优秀!