2

我的 iphone 应用程序被锁定 malloc。如果我pause在 Xcode 中按下按钮,它会在 OSSpinLockLock$VARIANT$mp 函数中暂停。

#0  0x95dfbc2d in OSSpinLockLock$VARIANT$mp ()
#1  0x95dc2613 in szone_malloc_should_clear ()
#2  0x95dc366b in szone_malloc ()
#3  0x95df9962 in malloc_zone_malloc ()
#4  0x95dfa882 in malloc ()
#5  0x0219743a in operator new(unsigned long) ()

如果我再按continue一次pause然后它总是显示相同的堆栈跟踪。

4

1 回答 1

2

看看你的其他线程。其中一个很可能被阻塞在 malloc 或 free 内部,并且两者相互僵持。

造成这种情况的一个常见原因是在信号处理程序内部分配内存(您永远不应该这样做)。如果您的系统中有某种“crash catcher”,并且在处理程序内部您执行复杂的操作,您会看到这一点。

于 2013-03-10T17:45:11.297 回答