Intereting Posts

KERN_INVALID_ADDRESS на 0x0000000000000000

Я разработал приложение iPad, используя Xcode 6.3.2. Я отправил свое приложение в App Store для просмотра, где он был отклонен из-за сбоя. Следующим является отчет о сбоях от iTunes.

Incident Identifier: 88DD7F94-3382-4241-A0D7-C3E7F6D20737 CrashReporter Key: 9881ae0cc3b3fbfccfd0ce1496d2fa08fec08782 Hardware Model: xxx Path: /private/var/mobile/Containers/Bundle/Application/FDBBD67F-0EF7-43FB-80CB-8308A10A2D29/Vehicle Visuals.app/Vehicle Visuals Identifier: com.vehiclevisuals.Vehicle-Visuals Version: 2.0.0 (1.1.0) Code Type: ARM-64 (Native) Parent Process: launchd [1] Date/Time: 2015-06-12 12:33:57.988 -0700 Launch Time: 2015-06-12 12:22:14.581 -0700 OS Version: iOS 8.3 (12F69) Report Version: 105 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000 Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libobjc.A.dylib 0x0000000195da7bdc 0x195d8c000 + 113628 1 QuartzCore 0x00000001889fdc2c 0x1889ec000 + 72748 2 Vehicle Visuals 0x0000000100126828 0x1000ec000 + 239656 3 Vehicle Visuals 0x0000000100101e80 0x1000ec000 + 89728 4 UIKit 0x0000000189118778 0x1890a4000 + 477048 5 UIKit 0x0000000189116750 0x1890a4000 + 468816 6 UIKit 0x0000000189112000 0x1890a4000 + 450560 7 UIKit 0x00000001890b175c 0x1890a4000 + 55132 8 QuartzCore 0x00000001889f9e18 0x1889ec000 + 56856 9 QuartzCore 0x00000001889f4880 0x1889ec000 + 34944 10 QuartzCore 0x00000001889f4724 0x1889ec000 + 34596 11 QuartzCore 0x00000001889f3eb8 0x1889ec000 + 32440 12 QuartzCore 0x00000001889f3c38 0x1889ec000 + 31800 13 UIKit 0x0000000189137f8c 0x1890a4000 + 606092 14 UIKit 0x0000000189137ef0 0x1890a4000 + 605936 15 CoreFoundation 0x000000018462c2a0 0x18454c000 + 918176 16 CoreFoundation 0x000000018462922c 0x18454c000 + 905772 17 CoreFoundation 0x000000018462955c 0x18454c000 + 906588 18 CoreFoundation 0x00000001845552d0 0x18454c000 + 37584 19 GraphicsServices 0x000000018dc436f8 0x18dc38000 + 46840 20 UIKit 0x000000018911afa8 0x1890a4000 + 487336 21 Vehicle Visuals 0x000000010013a1cc 0x1000ec000 + 319948 22 libdyld.dylib 0x0000000196412a04 0x196410000 + 10756 Thread 1 name: Dispatch queue: com.apple.libdispatch-manager 

Согласно отчету он выходит из строя на версии ОС: iOS 8.3 (12F69). Я тестировал свое приложение на всех симуляторах (iPad Air, iPad 2, iPad Retina) с той же конфигурацией (iOS версии 8.3 (12F69)), а также тестировал его на своем устройстве (iPad mini) с iOS версии 8.3 (12F69), но didn Я упал на бок. Но он падает на iPad iPad моего друга с той же версией iOS (он дает тот же отчет о сбое с другим недопустимым адресом, как показано ниже)

Тип исключения: EXC_BAD_ACCESS (SIGSEGV) Исходный подтип: KERN_INVALID_ADDRESS на 0x0000000000000020 Запущено по теме: 0

У меня нет iPad Air, чтобы я мог отлаживать его с помощью устройства.

Я также попытался отобразить отчет о сбоях Symbolicated, используя следующую команду.

xcrun atos -o VehicleVisuals 0x0000000000000020

Но он просто дает мне следующий шестнадцатеричный код.

0x00000020 (в VehicleVisuals)

Я следую за символом.

Я просто не могу понять, где на самом деле проблема с сбоем. Пожалуйста, кто-нибудь может мне помочь?

Solutions Collecting From Web of "KERN_INVALID_ADDRESS на 0x0000000000000000"

EXC_BAD_ACCESS обычно происходит потому, что вы отправляете сообщение Obj-C на неверный адрес памяти, что означает, что вы, вероятно, пытаетесь получить доступ к некоторому освобожденному объекту.

Он может работать на других устройствах, потому что этот объект не выпускается одновременно.

У меня недавно был аналогичный сбой, который произошел из-за того, что таймер не был признан недействительным на dealloc, и когда был вызван целевой метод, этот объект больше не существовал.

Вы можете попытаться включить объекты NSZombie и посмотреть, обнаружите ли вы, какой объект освобождается. В xCode 6 вы можете включить их в Product> Scheme> Edit scheme> Diagnostics> Enable Zombie Objects.

Кроме того, существует множество таких ошибок, которые NSZombieEnabled не может обнаружить. К сожалению, нет ничего волшебного, чтобы его решить. Второй вариант – запустить приложение с помощью инструментов (утечки памяти) и посмотреть, сможете ли вы что-то получить. Если это не сработает, вам придется просмотреть свой код и проверить, нет ли у вас возможности доступа к удаленному объекту. Надеюсь, поможет.

Удачи!