objc_msg发送15崩溃

时间:2012-11-02 18:21:41

标签: objective-c ios c xcode crash

我正在尝试追踪一个错误,我有一个看起来像这样的崩溃日志:

0    libobjc.A.dylib     objc_msgSend + 15

1    CoreFoundation  __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14

2    CoreFoundation  __CFRunLoopDoTimer + 272

3    CoreFoundation  __CFRunLoopRun + 1232

4    CoreFoundation  CFRunLoopRunSpecific + 356

5    CoreFoundation  CFRunLoopRunInMode + 104

6    GraphicsServices    GSEventRunModal + 74

7    UIKit   UIApplicationMain + 1120

8    MyApp  main.m line 21

不幸的是,MyApp系列是提及我的应用程序的任何线程中唯一的位置。

可能导致崩溃的指针是什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

该应用正在尝试调用不再存在的内容。并且调用是通过另一个runloop,通过计时器或类似的东西触发的,但已经被释放。

因此,您可能想要检查是否有任何计时器设置在计时器触发之前可能已经消失的对象。

答案 1 :(得分:0)

与其他答案一样,这是因为僵尸对象。正在调用已经解除分配实例的对象。

尝试使用Zombie乐器并在方案中启用僵尸对象来定位崩溃。这应该可以帮助您确定哪个对象被解除分配以及导致崩溃的方法。大多数情况下,这在使用委派时会发生。

这应该有用:https://developer.apple.com/library/ios/recipes/Instruments_help_articles/FindingMessagesSenttoDeallocatedObjects/FindingMessagesSenttoDeallocatedObjects.html