У меня заканчиваются идеи.Я получаю EXC_BAD_ACCESS
по проекту с использованием ARC.По словам отладчика, это в пределах main()
.NSZombieEnabled установлен в YES, но я не вижу никакого стека вызовов, ни Class / Type, ни чего-либо.То же самое для инспектора / профиля.Все, что я получаю, это "тайм-аут сеанса" через некоторое время после сбоя приложения.
И это трудно найти в моем коде.
Я устанавливаю трассировки вроде
NSLog(@"CrashLog: <%@:%@:%d:%s>", NSStringFromClass([self class]),
NSStringFromSelector(_cmd), __LINE__, __FILE__);
по всему моему коду на входе и выходе из методов, но я сделалпока не выявлено ни одной полезной картины.Все, что я могу видеть, - это то, что все мои методы, о которых идет речь, были оставлены уже при броске EXC_BAD_ACCESS
.
Есть идеи, как изолировать проблему?
Тим предложил использовать обратную трассировку (bt) в gdb.Результат:
#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