I recently received a crash report that looks like this:
0 libobjc.A.dylib 0x0000000193dfea88 object_cxxDestructFromClass(objc_object*, objc_class*) + 0 1 libobjc.A.dylib 0x0000000193e0bf34 objc_destructInstance + 88 2 libobjc.A.dylib 0x0000000193e0bf8c object_dispose + 24 3 My App 0x00000001000d88fc -[CCAction dealloc] + 44 4 My App 0x00000001000e6bf8 -[CCActionSequence .cxx_destruct] + 36 5 libobjc.A.dylib 0x0000000193dfeb18 object_cxxDestructFromClass(objc_object*, objc_class*) + 144 6 libobjc.A.dylib 0x0000000193e0bf34 objc_destructInstance + 88 7 libobjc.A.dylib 0x0000000193e0bf8c object_dispose + 24 8 My App 0x00000001000d88fc -[CCAction dealloc] + 44 9 My App 0x00000001000e6bf8 -[CCActionSequence .cxx_destruct] + 36 10 libobjc.A.dylib 0x0000000193dfeb18 object_cxxDestructFromClass(objc_object*, objc_class*) + 144 11 libobjc.A.dylib 0x0000000193e0bf34 objc_destructInstance + 88 12 libobjc.A.dylib 0x0000000193e0bf8c object_dispose + 24 13 My App 0x00000001000d88fc -[CCAction dealloc] + 44 14 My App 0x00000001000e6bf8 -[CCActionSequence .cxx_destruct] + 36
...and it continues on like this forever. Some kind of infinite recursion happening in dealloc that is causing a stack overflow.
There are only 2 method calls that are visible to me and one of them is .cxx_destruct which is an internal private method used by ARC. The other is the dealloc method of CCAction which only has a log statement in it:
-(void) dealloc { CCLOGINFO(@"cocos2d: deallocing %@", self); }
The crash is really hard to reproduce; I've only seen it once. However my app has not been released to the public yet so I'd really like to figure out what is causing it. Any help debugging this would be greatly appreciated.
I am using Cocos2D 3.3.0 and iOS 8.1
Aucun commentaire:
Enregistrer un commentaire