Tôi đang hết ý tưởng. Tôi nhận được một EXC_BAD_ACCESS
trên một dự án sử dụng ARC. Theo trình gỡ lỗi, nó nằm trong phạm vi main()
. NSZombieEnabled được đặt thành CÓ nhưng tôi không thấy bất kỳ callstack hoặc Class/Type hoặc bất cứ điều gì. Điều tương tự cho Thanh tra/Hồ sơ. Tất cả những gì tôi nhận được là "phiên hết hạn" một thời gian sau khi ứng dụng gặp sự cố.EXC_BAD_ACCESS trong chính() với ARC nhưng không có gợi ý về lỗi
Và khó xác định vị trí trong mã của tôi.
Tôi đang thiết dấu vết như
NSLog(@"CrashLog: <%@:%@:%d:%s>", NSStringFromClass([self class]),
NSStringFromSelector(_cmd), __LINE__, __FILE__);
trên tất cả các mã của tôi trên enty và lối ra của phương pháp này, nhưng tôi vẫn chưa xác định bất kỳ mô hình hữu ích. Tất cả những gì tôi có thể thấy là tất cả các phương pháp được đề cập của tôi đã bị bỏ lại khi số EXC_BAD_ACCESS
bị ném.
Bất kỳ ý tưởng nào về cách cách ly sự cố?
Tim được đề xuất sử dụng dấu vết ngược (bt) trong gdb. Kết quả là:
#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
Cảm ơn Lou. Đối với 1. Tôi đang làm điều đó với các yêu cầu http không đồng bộ. Tuy nhiên, tôi khá chắc chắn rằng tôi hủy bỏ tất cả các kết nối mở trong phương pháp gỡ lỗi của các đối tượng yêu cầu. Tuy nhiên tôi sẽ kiểm tra lại. Đối với 2: Cảm ơn. Tôi sẽ kiểm tra xem tôi đã sử dụng self.var trong tất cả các trường hợp có liên quan chưa. 3. không nên áp dụng cho ứng dụng của tôi cả. Tuy nhiên, bạn có thể cụ thể hơn một chút về "bảo vệ malloc". Đây là tin tức đối với tôi hoặc tôi thực sự không hiểu ý bạn là gì. (Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi). Cảm ơn bạn rất nhiều. –
Theo liên kết để được trợ giúp Guard Malloc. Nó làm cho vùng heap nhạy cảm hơn với các vấn đề. –
Điều này không trực tiếp helpfu. Tuy nhiên, theo lời khuyên thu hẹp cửa sổ kịp thời xuống đáng kể. Nó dễ dàng hơn nhiều để tìm ra một số nguyên nhân gốc rễ nếu bạn có một ý tưởng, ít nhất, những gì để xem xét hoặc cho. Bạn đang chạy một blog tuyệt vời. :) –