objective-c – 带有ARC的main()中的EXC_BAD_ACCESS,但没有提示
我的想法已经不多了.我在使用ARC的项目上收到EXC_BAD_ACCESS.根据调试器,它在main()中. NSZombieEnabled设置为YES但我没有看到任何callstack或Class / Type或任何东西.检查器/配置文件也是如此.在应用程序崩溃后的某个时间,我得到的只是“会话超时”.
而且很难在我的代码中找到它. 我正在设置像 NSLog(@"CrashLog: <%@:%@:%d:%s>",NSStringFromClass([self class]),NSStringFromSelector(_cmd),__LINE__,__FILE__); 关于enty和退出方法的代码,但我还没有找到任何有用的模式.我所能看到的是,当抛出EXC_BAD_ACCESS时,我所有的方法都已经存在. 有关如何隔离问题的任何想法? Tim建议在gdb中使用back trace(bt).结果是: #0 0x0be87580 in TI::Favonius::BeamSearch::choose_hit_test_node () #1 0x0be87b5f in TI::Favonius::BeamSearch::update_for_touch () #2 0x0be8ee32 in TI::Favonius::StrokeBuildManager::update_search_for_touch () #3 0x0be8f58f in TI::Favonius::StrokeBuildManager::key_down_or_drag_hit_test_for_UI () #4 0x0be6ba8b in TIInputManagerZephyr::simulate_touches_for_input_string () #5 0x0be7e5d9 in -[TIKeyboardInputManagerZephyr candidates] () #6 0x00678345 in -[UIKeyboardImpl generateAutocorrectionReplacements:] () #7 0x007dcaec in __71-[UITextInteractionAssistant scheduleReplacementsForRange:withOptions:]_block_invoke_0 () #8 0x007f6db2 in -[UITextSelectionView calculateAndShowReplacements:] () #9 0x00e255fd in __NSFireDelayedPerform () #10 0x01a03976 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ () #11 0x01a03417 in __CFRunLoopDoTimer () #12 0x019667e0 in __CFRunLoopRun () #13 0x01965dd4 in CFRunLoopRunSpecific () #14 0x01965ceb in CFRunLoopRunInMode () #15 0x01ccb879 in GSEventRunModal () #16 0x01ccb93e in GSEventRun () #17 0x0050d38b in UIApplicationMain () #18 0x000033e0 in main (argc=1,argv=0xbffff5fc) at /Users/Hermann/AppDev/fcApp/fcApp/main.m:16 解决方法
仍然有办法通过ARC获得EXC_BAD_ACCESS.我碰到的一些
>如果你正在做一个你制作一个对象并且异步调用你的东西 – 你必须确保在某处保留对它的引用,否则ARC将释放它.一个例子是UIImagePicker – 您不能只创建一个本地图像选择器变量并调用它(然后在它回调时释放它) – 你必须创建一个属性并保持它 Crash when using gesture recognizers in StoryBoard 在这些情况下,僵尸应该提供帮助 – 所以它没有帮助意味着你可能不会过早地导致释放发生.更有可能是你正在调整内存 – 我会检查所有强制转换以及你使用内置数组或非对象指针的任何地方,以确保你不会超出界限. Guard Malloc可以提供帮助 https://developer.apple.com/library/ios/#documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |