我正在iOS 10下开发一个app-objective-c。该应用程序运行良好,从一个小时到几个小时,直到它崩溃。
奇怪的是,崩溃总是在一些块调度的开始处使用dispatch_async(__gcd_queue_item_enqueue_hook_block_invoke)。该块永远不会相同。
经过测试的泄漏和varios malloc测试。内存使用率很低。这似乎不是内存问题。依然没有。
此时我对如何进行调试毫无头绪。欢迎任何建议。
编辑:这是上次崩溃的完整堆栈跟踪:
* thread #254, stop reason = EXC_BAD_ACCESS (code=1, address=0x24)
frame #0: 0x00000001006f2e08 libBacktraceRecording.dylib`__gcd_queue_item_enqueue_hook_block_invoke
frame #1: 0x00000001006f238c libBacktraceRecording.dylib`gcd_queue_item_enqueue_hook + 224
frame #2: 0x00000001012e5e48 libdispatch.dylib`_dispatch_introspection_queue_item_enqueue_hook + 40
frame #3: 0x00000001012c5304 libdispatch.dylib`_dispatch_queue_push + 196
* frame #4: 0x00000001000e2850 Lucky`-[LuckyViewController onEventsChanged:](self=0x000000010181a200, _cmd="onEventsChanged:", events=@"14 elements") at LuckyViewController.m:1517
frame #5: 0x00000001001f7c2c Lucky`-[TutorManager strategyLoop2](self=0x000000010165e4b0, _cmd="strategyLoop2") at TutorManager.m:723
frame #6: 0x000000018e62f318 Foundation`__NSThread__start__ + 996
frame #7: 0x000000018cbfd68c libsystem_pthread.dylib`_pthread_body + 240
frame #8: 0x000000018cbfd59c libsystem_pthread.dylib`_pthread_start + 284
frame #9: 0x000000018cbfacb4 libsystem_pthread.dylib`thread_start + 4
答案 0 :(得分:0)
这不是dispatch_async
。
Apple技术支持部门确认这是libBacktraceRecording.dylib
库中的一个错误,用于在Xcode中进行调试。
它不会在用户设备上崩溃,因为这是一个调试错误 发生在大多数用户设备上不存在的库中。
简而言之,如果您在堆栈跟踪的顶部看到libBacktraceRecording.dylib
,则可能是这样,并且可能不是代码中的错误