У меня есть приложение, которое периодически терпит крах для клиента. Я не могу дублировать крах, но я смог получить журнал ошибок от клиента, и я надеюсь, что кто-то может указать мне в правильном направлении относительно того, на что я должен смотреть. Это в меньшинстве отчетов о сбоях, большинство других отчетов о сбоях - это события с низкой памятью. Приложение использует ARC, если это имеет значение.iOS 6.1.3 EXC_BAD_ACCESS KERN_INVALID_ADDRESS
Я новичок в этом, так что я просто должен быть в правильном направлении, желательно любезно :)
Incident Identifier: C21570BF-3E76-44DD-BEB1-03FDA4A12750
CrashReporter Key: ebcd6d296e2badb36644f9abfdae158007ba680e
Hardware Model: iPad2,1
Process: APP_NAME [106]
Path: /var/mobile/Applications/F083D896-D881-4F8F-81FE-44BDA9C072EA/APP_NAME.app/APP_NAME
Identifier: APP_NAME
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2013-05-17 14:26:42.639 -0700
OS Version: iOS 6.1.3 (10B329)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xc1ed2375
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x3b46b5b0 objc_msgSend + 16
1 UIKit 0x35566080 -[UIAlertView(Private) _performPopup:animationType:revealedBySpringBoardAlert:] + 504
2 UIKit 0x35582f28 -[UIAlertView(Private) _repopup] + 76
3 UIKit 0x3556cbd4 -[UIAlertView(Private) _removeAlertWindowOrShowAnOldAlert] + 192
4 UIKit 0x3556c996 -[UIAlertView(Private) _popoutAnimationDidStop:finished:] + 590
5 UIKit 0x35429aae -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 154
6 UIKit 0x3549e8ea -[UIViewAnimationState animationDidStop:finished:] + 46
7 QuartzCore 0x351d3bfc CA::Layer::run_animation_callbacks(void*) + 204
8 libdispatch.dylib 0x3b8874b4 _dispatch_client_callout + 20
9 libdispatch.dylib 0x3b88c1b8 _dispatch_main_queue_callback_4CF$VARIANT$mp + 220
10 CoreFoundation 0x335dff36 __CFRunLoopRun + 1286
11 CoreFoundation 0x33552eb8 CFRunLoopRunSpecific + 352
12 CoreFoundation 0x33552d44 CFRunLoopRunInMode + 100
13 GraphicsServices 0x371092e6 GSEventRunModal + 70
14 UIKit 0x354682fc UIApplicationMain + 1116
15 APP_NAME 0x000bd492 main (main.m:16)
16 libdyld.dylib 0x3b8a7b1c start + 0
Это трудно получить от этого много, но 'objc_msgSend' в верхней части стека указывает на проблему, когда сообщение отправляется объекту, который не существует (или не понимает сообщение). Скорее всего, у вас есть что-то слабое, которое должно быть сильным или что-то, что выходит из сферы действия, когда это не должно. Может быть, ваше оповещение использует делегата ... (гадание)? –
Что я вижу чаще всего для этого приложения, так это то, что у iPad заканчивается память, когда происходит многократная загрузка (20+), поэтому мне интересно, был ли этот конкретный сбой просто артефактом, из-за которого он заканчивался памяти. Это возможность? Я думаю о переносе загрузок в какую-то очередь, чтобы помочь решить эту проблему. – mitchkramez
Может быть. Раньше было правдой, что система будет выгружать неиспользуемые представления, когда у вас мало памяти. Я думал, что это остановилось, но я не слишком внимательно следил за этой темой. Так или иначе, очень вероятно, что причиной фактического сбоя является объект, который уже был уничтожен. Я бы предложил использовать зомби в качестве способа исследования, но если у вас уже недостаточно памяти, которая может не работать хорошо. –