【发布时间】:2012-12-15 17:49:53
【问题描述】:
我的应用程序出现 EXC_BAD_ACCESS 崩溃,我在可执行方案上启用了 NSZombie 进行调试。即使启用了 NSZombie,我仍然会遇到此崩溃。主要嫌疑人是导致此错误的线程(不是主线程)。我在我的代码中做一些 kvo 的东西。它似乎来自它。我找不到导致问题的地方。 这是线程的回溯。谁能告诉我如何确定问题?任何线索或调试提示将不胜感激。
更新:我尝试运行分析器,但程序在分析器上运行时停止并自行关闭。没有消息什么都没有……只是默默地关闭,录音停止了。我不太擅长看分析仪,但谁能告诉我在哪里看?
* thread #9: tid = 0x2803, 0x00cfdb3e Foundation`__block_global_4 + 420, stop reason = EXC_BAD_ACCESS (code=2, address=0x20)
frame #0: 0x00cfdb3e Foundation`__block_global_4 + 420
frame #1: 0x00c5b9d7 Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 675
frame #2: 0x00c5b72e Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:usingBlock:] + 63
frame #3: 0x00cfd994 Foundation`____NSOQDelayedAttachPendingOperations_block_invoke_0 + 98
frame #4: 0x00c5b9d7 Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 675
frame #5: 0x00c5b72e Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:usingBlock:] + 63
frame #6: 0x00c84e7b Foundation`__NSOQDelayedAttachPendingOperations + 156
frame #7: 0x01615014 libdispatch.dylib`_dispatch_client_callout + 14
frame #8: 0x01604fd6 libdispatch.dylib`_dispatch_after_timer_callback + 28
frame #9: 0x01615014 libdispatch.dylib`_dispatch_client_callout + 14
frame #10: 0x0160c8b7 libdispatch.dylib`_dispatch_source_latch_and_call + 219
frame #11: 0x01608405 libdispatch.dylib`_dispatch_source_invoke + 322
frame #12: 0x01606280 libdispatch.dylib`_dispatch_root_queue_drain + 231
frame #13: 0x01606450 libdispatch.dylib`_dispatch_worker_thread2 + 39
frame #14: 0x995eee12 libsystem_c.dylib`_pthread_wqthread + 441
【问题讨论】:
-
您是否尝试过添加exception breakpoint?在调试您的应用程序时,这通常会突出显示导致异常的代码行。不看代码我们不可能诊断出问题的根源,但也许你可以通过异常断点自己识别问题。
-
调用 nil 块可能会导致这样的崩溃。您可以查看是否可能将 nil 块传递给可能正在调用它的代码。另外,如果通知来自后台线程,您确定您正在安全地处理您的 KVO 观察者吗?也许您可以发布一些可能涉及此 KVO 事件的代码?
-
@Rob:是的,我已经启用了 xcode 中的所有异常断点。对我来说,它显示的是反汇编代码......这就是它停止崩溃的地方。
-
@JesseRusak:我在我的应用程序中使用了所有就地块。所以我猜没有无效的块。
-
我遇到了类似的问题,似乎也与此 AFNetworking 问题有关:github.com/AFNetworking/AFNetworking/issues/1626
标签: objective-c ios xcode4.5 lldb