Как исправить сбои EXC_BAD_ACCESS KERN_INVALID_ADDRESS ⇐ IOS
-
Anonymous
Как исправить сбои EXC_BAD_ACCESS KERN_INVALID_ADDRESS
К сожалению, у меня происходят сбои (не могу воспроизвести) в работающем приложении. Я пробовал разные способы завершения, такие как добавление [слабое «я»] или создание сильного «я» в замыкании, но ни один из них не сработал.
Единственное, в чем я уверен, что у пользователей происходит сбой после возвращения в приложение через долгое время (от 15 минут до 1 часа). Я запускал различные тесты Zombie и Allocation в Инструментах, но об утечках ничего не известно.
Я хотел бы знать, существует ли логический способ определить причину сбоя EXC_BAD_ACCESS KERN_INVALID_ADDRESS. Как добавить проверку, чтобы предотвратить сбой или устранить проблему? Можете ли вы мне что-нибудь предложить?
Свойство WaterfallResponse дает сбой при установке объекта данных в вызове refreshAd.
@objc public class AdMediatorBanner { ...// характеристики вар водопадОтвет: AdMediatorZoneResponse? ...// блоки кода AdMediatorManager.instance.refreshAd(self.zoneId!, self.adMediatorBannerId!) { [weak self] (данные, errorCode) в охранник let self = self else { возвращаться } если данные != ноль { self.waterfallResponse = данные } ... // остальные блоки кода закрытия Журнал сбоев:
Сбой: NSOperationQueue 0x1320da410 (QOS: НЕ СПЕЦИФИЦИРОВАНО) 0 libobjc.A.dylib 0x19bc67d90 objc_release + 16 1 XXX 0x104c213e4 уничтожить для AdMediatorZoneResponseItem + 4309242852 (:4309242852) 2 libswiftCore.dylib 0x1a9a473a0 Swift_arrayDestroy + 84 3 libswiftCore.dylib 0x1a979e390 _ContigiousArrayStorage.__deallocating_deinit + 48 4 libswiftCore.dylib 0x1a9a5200c _swift_release_dealloc + 36 5 XXX 0x104c54cac указано использование AdMediatorZoneResponse? +4309453996 6 XXX 0x104c4e7d0 AdMediatorBanner.waterfallResponse.setter + 51 (AdMediatorBanner.swift:51) 7 XXX 0x104c55910 частичное применение для закрытия №2 в AdMediatorBanner.startAdRequest() + 353 (AdMediatorBanner.swift:353) 8 XXX 0x104c3cc14 частичное применение для закрытия № 1 в AdMediatorManager.refreshAd(_:_:completionHandler:) + 96 (AdMediatorManager.swift:96) 9 XXX 0x104cb5f9c частично применяется для закрытия № 1 в AdMediatorWebRequest.fetchDataFromServer(resultHandler:) + 4309852060 (:4309852060) 10 XXX 0x104cb4e84 переходник для @escaping @callee_guaranteed (@guaranteed Data?, @guaranteed NSURLResponse?, @guaranteed Error?) -> () + 4309847684 (:4309847684) 11 CFNetwork 0x19f1f5b18 CFNetServiceBrowserSearchForServices + 96332 12 CFNetwork 0x19f206948 _CFHTTPMessageSetResponseProxyURL + 8176 13 Фонд 0x19c30bcfc __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 24 14 Foundation 0x19c20dc3c -[NSBlockOperation main] + 104 15 Фонд 0x19c30e03c __NSOPERATION_IS_INVOKING_MAIN__ + 24 16 Foundation 0x19c20d914 -[Начало NSOperation] + 752 17 Фонд 0x19c30ea68 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 24 18 Фонд 0x19c30e528 __NSOQSchedule_f + 184 19 libdispatch.dylib 0x19bbe4db4 _dispatch_block_async_invoke2 + 144 20 libdispatch.dylib 0x19bbd833c _dispatch_client_callout + 20 21 libdispatch.dylib 0x19bbdaaf8 _dispatch_continuation_pop + 408 22 libdispatch.dylib 0x19bbda258 _dispatch_async_redirect_invoke + 588 23 libdispatch.dylib 0x19bbe75c0 _dispatch_root_queue_drain + 348 24 libdispatch.dylib 0x19bbe7d9c _dispatch_worker_thread2 + 116 25 libsystem_pthread.dylib 0x19bc3f6d8 _pthread_wqthread + 216 26 libsystem_pthread.dylib 0x19bc459c8 start_wqthread + 8
К сожалению, у меня происходят сбои (не могу воспроизвести) в работающем приложении. Я пробовал разные способы завершения, такие как добавление [слабое «я»] или создание сильного «я» в замыкании, но ни один из них не сработал.
Единственное, в чем я уверен, что у пользователей происходит сбой после возвращения в приложение через долгое время (от 15 минут до 1 часа). Я запускал различные тесты Zombie и Allocation в Инструментах, но об утечках ничего не известно.
Я хотел бы знать, существует ли логический способ определить причину сбоя EXC_BAD_ACCESS KERN_INVALID_ADDRESS. Как добавить проверку, чтобы предотвратить сбой или устранить проблему? Можете ли вы мне что-нибудь предложить?
Свойство WaterfallResponse дает сбой при установке объекта данных в вызове refreshAd.
@objc public class AdMediatorBanner { ...// характеристики вар водопадОтвет: AdMediatorZoneResponse? ...// блоки кода AdMediatorManager.instance.refreshAd(self.zoneId!, self.adMediatorBannerId!) { [weak self] (данные, errorCode) в охранник let self = self else { возвращаться } если данные != ноль { self.waterfallResponse = данные } ... // остальные блоки кода закрытия Журнал сбоев:
Сбой: NSOperationQueue 0x1320da410 (QOS: НЕ СПЕЦИФИЦИРОВАНО) 0 libobjc.A.dylib 0x19bc67d90 objc_release + 16 1 XXX 0x104c213e4 уничтожить для AdMediatorZoneResponseItem + 4309242852 (:4309242852) 2 libswiftCore.dylib 0x1a9a473a0 Swift_arrayDestroy + 84 3 libswiftCore.dylib 0x1a979e390 _ContigiousArrayStorage.__deallocating_deinit + 48 4 libswiftCore.dylib 0x1a9a5200c _swift_release_dealloc + 36 5 XXX 0x104c54cac указано использование AdMediatorZoneResponse? +4309453996 6 XXX 0x104c4e7d0 AdMediatorBanner.waterfallResponse.setter + 51 (AdMediatorBanner.swift:51) 7 XXX 0x104c55910 частичное применение для закрытия №2 в AdMediatorBanner.startAdRequest() + 353 (AdMediatorBanner.swift:353) 8 XXX 0x104c3cc14 частичное применение для закрытия № 1 в AdMediatorManager.refreshAd(_:_:completionHandler:) + 96 (AdMediatorManager.swift:96) 9 XXX 0x104cb5f9c частично применяется для закрытия № 1 в AdMediatorWebRequest.fetchDataFromServer(resultHandler:) + 4309852060 (:4309852060) 10 XXX 0x104cb4e84 переходник для @escaping @callee_guaranteed (@guaranteed Data?, @guaranteed NSURLResponse?, @guaranteed Error?) -> () + 4309847684 (:4309847684) 11 CFNetwork 0x19f1f5b18 CFNetServiceBrowserSearchForServices + 96332 12 CFNetwork 0x19f206948 _CFHTTPMessageSetResponseProxyURL + 8176 13 Фонд 0x19c30bcfc __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 24 14 Foundation 0x19c20dc3c -[NSBlockOperation main] + 104 15 Фонд 0x19c30e03c __NSOPERATION_IS_INVOKING_MAIN__ + 24 16 Foundation 0x19c20d914 -[Начало NSOperation] + 752 17 Фонд 0x19c30ea68 __NSOPERATIONQUEUE_IS_STARTING_AN_OPERATION__ + 24 18 Фонд 0x19c30e528 __NSOQSchedule_f + 184 19 libdispatch.dylib 0x19bbe4db4 _dispatch_block_async_invoke2 + 144 20 libdispatch.dylib 0x19bbd833c _dispatch_client_callout + 20 21 libdispatch.dylib 0x19bbdaaf8 _dispatch_continuation_pop + 408 22 libdispatch.dylib 0x19bbda258 _dispatch_async_redirect_invoke + 588 23 libdispatch.dylib 0x19bbe75c0 _dispatch_root_queue_drain + 348 24 libdispatch.dylib 0x19bbe7d9c _dispatch_worker_thread2 + 116 25 libsystem_pthread.dylib 0x19bc3f6d8 _pthread_wqthread + 216 26 libsystem_pthread.dylib 0x19bc459c8 start_wqthread + 8
Мобильная версия