我有一个在后台进程中使用私有队列并发的 Core Data iOS 应用程序。我遇到了一个死锁,导致 UI 不时冻结(老实说,相当经常) - 但我从调试器 (LLDB) 获得的所有信息都是它卡在 pthread_mutex_lock 上。堆栈跟踪不长,这使得调试几乎不可能:
thread #1: tid = 0x2503, 0x3b5060fc libsystem_kernel.dylib`__psynch_mutexwait + 24, stop reason = signal SIGSTOP
frame #0: 0x3b5060fc libsystem_kernel.dylib`__psynch_mutexwait + 24
frame #1: 0x3b44f128 libsystem_c.dylib`pthread_mutex_lock + 392
XCode 进程窗格同样只显示堆栈上的这两个条目。
我对这种多线程的东西很陌生,所以完全不知道从哪里开始解决这个问题。关于如何进行调试的任何建议?