Сбой симуляторов iPhone при запуске приложения - PullRequest
4 голосов
/ 22 июля 2011

У меня возникли проблемы с симуляторами iPhone после обновления до Lion и XCode 4.1. Когда я запускаю симулятор для 4.0, 4.1 или 4.2 (который я восстановил из Time Machine), я сразу получаю ошибку EXC_BAD_ACCESS:

0x003c23dc  <+0012>  call   0x3c23e1 <__springboard_unimplemented+17>

На 4.3 я также сразу получаю ошибку EXC_BAD_ACCESS, на objc_msgSend, и, насколько я могу судить, это происходит еще до запуска приложения.

Я пытался очистить мишени, но безрезультатно, и NSZombieEnabled, похоже, не помог.

Приложение отлично работает на моем iPhone.

РЕДАКТИРОВАТЬ : Удаление и переустановка XCode, не помогли. Пустой новый проект работает нормально. После установки некоторых точек останова, похоже, что в этой строке происходит сбой в main.m (что не очень полезно):

    int retVal = UIApplicationMain(argc, argv, nil, nil);

РЕДАКТИРОВАТЬ : В соответствии с просьбой, вот тема применить все bt full:

Для симулятора 4.2 это повторяется ~ 5800 раз, каждый раз с другим адресом памяти:

#0  0x003c23dc in __springboard_unimplemented ()
No symbol table info available.

, за которым следуют такие вещи:

#5817 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5818 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5819 0x90bdbc0c in abort ()
No symbol table info available.
#5820 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5821 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5822 0x90bdbc0c in abort ()
No symbol table info available.
#5823 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5824 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5825 0x90bdbc0c in abort ()
No symbol table info available.
#5826 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5827 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5828 0x90bdbc0c in abort ()
No symbol table info available.
#5829 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5830 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5831 0x90bdbc0c in abort ()
No symbol table info available.
#5832 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5833 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5834 0x90bdbc0c in abort ()
No symbol table info available.
#5835 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5836 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5837 0x90bdbc0c in abort ()
No symbol table info available.
#5838 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5839 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5840 0x90bdbc0c in abort ()
No symbol table info available.
#5841 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5842 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5843 0x90bdbc0c in abort ()
No symbol table info available.
#5844 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5845 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5846 0x90bdbc0c in abort ()
No symbol table info available.
#5847 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5848 0x003ca9c1 in getrlimit$UNIX2003 ()
No symbol table info available.
#5849 0x90bf564a in sysconf ()
No symbol table info available.
#5850 0x90be62a0 in __sinit ()
No symbol table info available.
#5851 0x90bdbdee in __swsetup ()
No symbol table info available.
#5852 0x90bdc1fa in vfprintf_l ()
No symbol table info available.
#5853 0x90be620e in fprintf ()
No symbol table info available.
#5854 0x003c2543 in __springboard_unimplemented ()
No symbol table info available.
#5855 0x003cacd1 in kill$UNIX2003 ()
No symbol table info available.
#5856 0x90bdbc0c in abort ()
No symbol table info available.
#5857 0x003c2548 in __springboard_unimplemented ()
No symbol table info available.
#5858 0x003ca9c1 in getrlimit$UNIX2003 ()
No symbol table info available.
#5859 0x90bf564a in sysconf ()
No symbol table info available.
#5860 0x90be62a0 in __sinit ()
No symbol table info available.
#5861 0x90bdbdee in __swsetup ()
No symbol table info available.
#5862 0x90bdc1fa in vfprintf_l ()
No symbol table info available.
#5863 0x90be620e in fprintf ()
No symbol table info available.
#5864 0x003c2543 in __springboard_unimplemented ()
No symbol table info available.
#5865 0x003ca9c1 in getrlimit$UNIX2003 ()
No symbol table info available.
#5866 0x90bf564a in sysconf ()
No symbol table info available.
#5867 0x90be62a0 in __sinit ()
No symbol table info available.
#5868 0x90bdbdee in __swsetup ()
No symbol table info available.
#5869 0x90bdc1fa in vfprintf_l ()
No symbol table info available.
#5870 0x90be620e in fprintf ()
No symbol table info available.
#5871 0x003c2543 in __springboard_unimplemented ()
No symbol table info available.
#5872 0x003cbbe9 in mmap$UNIX2003 ()
No symbol table info available.
#5873 0x90c01319 in allocate_pages ()
No symbol table info available.
#5874 0x90c08780 in create_scalable_zone ()
No symbol table info available.
#5875 0x90c3e48d in _malloc_initialize ()
No symbol table info available.
#5876 0x90c3e86b in malloc ()
No symbol table info available.
#5877 0x99aa8a62 in get_or_create_key_element ()
No symbol table info available.
#5878 0x99aa8c6b in _keymgr_get_and_lock_processwide_ptr_2 ()
No symbol table info available.
#5879 0x99aa8e4a in __keymgr_initializer ()
No symbol table info available.
#5880 0x9bed97b8 in libSystem_initializer ()
No symbol table info available.
#5881 0x8fe9415b in __dyld__ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE ()
No symbol table info available.
#5882 0x8fe93cc0 in __dyld__ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE ()
No symbol table info available.
#5883 0x8fe91220 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
No symbol table info available.
#5884 0x8fe911b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
No symbol table info available.
#5885 0x8fe911b6 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE ()
No symbol table info available.
#5886 0x8fe921c0 in __dyld__ZN11ImageLoader15runInitializersERKNS_11LinkContextERNS_21InitializerTimingListE ()
No symbol table info available.
#5887 0x8fe86656 in __dyld__ZN4dyld24initializeMainExecutableEv ()
No symbol table info available.
#5888 0x8fe8aef2 in __dyld__ZN4dyld5_mainEPK12macho_headermiPPKcS5_S5_ ()
No symbol table info available.
#5889 0x8fe842ef in __dyld__ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_ ()
No symbol table info available.
#5890 0x8fe84063 in __dyld__dyld_start ()
No symbol table info available.

Полный вывод здесь: https://gist.github.com/b14502e1c6393d655653

Для симулятора 4.3 я получаю это:

Thread 4 (process 1938):
#0  0x905a6c22 in mach_msg_trap ()
No symbol table info available.
#1  0x905a61f6 in mach_msg ()
No symbol table info available.
#2  0x01bcad86 in __CFRunLoopServiceMachPort ()
No symbol table info available.
#3  0x01b27e74 in __CFRunLoopRun ()
No symbol table info available.
#4  0x01b27840 in CFRunLoopRunSpecific ()
No symbol table info available.
#5  0x01b27761 in CFRunLoopRunInMode ()
No symbol table info available.
#6  0x02db5903 in RunWebThread ()
No symbol table info available.
#7  0x90be8ed9 in _pthread_start ()
No symbol table info available.
#8  0x90bec6de in thread_start ()
No symbol table info available.

Thread 3 (process 1938):
#0  0x905a990a in kevent ()
No symbol table info available.
#1  0x03f28f36 in _dispatch_mgr_invoke ()
No symbol table info available.
#2  0x03f29333 in _dispatch_queue_invoke ()
No symbol table info available.
#3  0x03f29593 in _dispatch_worker_thread2 ()
No symbol table info available.
#4  0x90beab24 in _pthread_wqthread ()
No symbol table info available.
#5  0x90bec6fe in start_wqthread ()
No symbol table info available.

Thread 2 (process 1938):
#0  0x905a902e in __workq_kernreturn ()
No symbol table info available.
#1  0x90beaccf in _pthread_wqthread ()
No symbol table info available.
#2  0x90bec6fe in start_wqthread ()
No symbol table info available.

Thread 1 (process 1938):
#0  0x01d4f09f in objc_msgSend ()
No symbol table info available.
#1  0x00000000 in ?? ()
No symbol table info available.

РЕДАКТИРОВАТЬ : переустановил SDK, ничего не исправило.

РЕДАКТИРОВАТЬ : вот команда gcc (с измененным именем приложения)

CompileC /Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/Objects-normal/i386/SlideshowViewController.o Classes/SlideshowViewController.m normal i386 objective-c com.apple.compilers.llvmgcc42
cd /Users/kyle/dev/app/iphone
setenv LANG en_US.US-ASCII
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -x objective-c -arch i386 -fmessage-length=0 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -DSTAGING_API=1 -DDEBUG=1 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -fexceptions -fasm-blocks -mmacosx-version-min=10.6 -gdwarf-2 -fvisibility=hidden -fobjc-abi-version=2 -fobjc-legacy-dispatch -D__IPHONE_OS_VERSION_MIN_REQUIRED=40000 -iquote /Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/app-generated-files.hmap -I/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/app-own-target-headers.hmap -I/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/app-all-target-headers.hmap -iquote /Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/app-project-headers.hmap -I/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Products/Debug-iphonesimulator/include -IAirship/Library -IAirship/Library/AirshipLib -IAirship/Library/InboxLib -IAirship/Library/PushLib -IAirship/Library/StoreFrontLib -IAirship/Library/SubscriptionLib -IAirship/Common -I/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/DerivedSources/i386 -I/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/DerivedSources -F/Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Products/Debug-iphonesimulator -F/Users/kyle/dev/app/iphone -include /Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/PrecompiledHeaders/app_Prefix-gbcbcigtjfyhhsbcjwzscgyfdbfj/app_Prefix.pch -c /Users/kyle/dev/app/iphone/Classes/SlideshowViewController.m -o /Users/kyle/Library/Developer/Xcode/DerivedData/app-biyijbbdlfmlcihjougudvgjsxcd/Build/Intermediates/app.build/Debug-iphonesimulator/app.build/Objects-normal/i386/SlideshowViewController.o

Ответы [ 7 ]

14 голосов
/ 16 сентября 2011

Хорошо, так что спустя недели и недели я наконец нашел решение: исправить флаги компоновщика в соответствии с этим комментарием: EXC_BAD_ACCESS при копировании или сохранении блока

По сути, вы меняете -weak_library /usr/lib/libSystem.B.dylibк -weak-lSystem.

Я изначально добавил это, потому что это требовалось для городского дирижабля.

4 голосов
/ 26 июля 2011

Вам не хватает некоторых основных функций для симулятора.Springboard - это название «рабочего стола» для iOS, и ваша система симуляции, кажется, думает, что она не реализована.

__springboard_unimplemented ()

Эта несоответствие объясняетпочему у вас проблемы с симулятором, а не с телефоном.

Я бы предложил полностью удалить Xcode и iOS SDK, а затем заново установить его из App Store.

РЕДАКТИРОВАТЬ: Некоторые из моих поисковиков:

Последний был похоронен глубоко в пределах территории только для разработчиков Apple.Это текстовый дамп с форума, поэтому он не очень хорошо отформатирован, но выглядит наиболее перспективным.Это выглядит как нижняя строка:

Ваше приложение умерло из-за того, что что-то вызвало abort (), как показано в информации для конкретного приложения.Обратный след показывает, что abort () был вызван __springboard_unimplemented (), что означает, что вы вызываете функцию, которая присутствует в симуляторе, но может отсутствовать на устройстве.Эта функция называется mcount_L1 ().Вызовы mcount_L1 () поступают из инструментов профилирования.Чтобы это исправить, убедитесь, что у вас отключена опция «Создать код профиля» в настройках сборки.

2 голосов
/ 27 июля 2011

Ответ на вашу проблему заключается в том, что вы написали: (который я восстановил из Time Machine) .

Вы используете восстановленную версию симулятора, которая не соответствует вашейУстановка Xcode 4.1.

Использование любого симулятора, не являющегося частью установленного SDK, осуществляется на ваш страх и риск.

1 голос
/ 01 августа 2011

Вы сказали, что повышены до Lion.Вы установили сборку Lion Xcode или Snow Leopard?Для меня это выглядит так, будто вам нужно установить сборку Lion Xcode на Lion.

edit: Исправление в комментариях, выложите его здесь.Воссоздание файла проекта с использованием новой установки lion и импорт существующего исходного кода возобновили работу.

1 голос
/ 27 июля 2011

Я тоже столкнулся с этим.Я исправил это, удалив мой каталог / Developer, установив Xcode 4.1, затем установив Xcode 4.2, ТО затем установив последнюю бета-версию iTunes 10.5.С тех пор не было проблем.

0 голосов
/ 07 ноября 2013

Во-первых, вы можете сбросить симулятор и выйти из Xcode. После этого вы можете удалить папку приложения в iPhone Simulator, а также удалить все производные данные из / Library / Developer / Xcode / DerivedData. Затем откройте свой проект и проверьте, отсутствует ли какая-либо инфраструктура в соответствии с функциональностью вашего приложения.

0 голосов
/ 02 августа 2011

Кайл. У меня была очень похожая проблема. Последние несколько дней мое приложение вылетает на симуляторе, но отлично работает на устройстве. Я был ленив и просто тестировал на устройстве.

Но когда я вернусь домой сегодня вечером, я попробую кое-что и посмотрю, смогу ли я решить это. Для меня сбой не происходит сразу после запуска. Это происходит, когда я набираю второй символ в textField. Ничего плохого не происходит с первой буквы. Только на втором.

Авария происходит в одном из двух мест. Один такой же, как у вас - в основном. Второй находится в одном из обратных вызовов текстового поля. Это случайно чередуется. В окне отладки нет трассировки стека. Поскольку передо мной нет компьютера, я не могу вспомнить все детали.

Единственное, что нас объединяет, это то, что у меня есть лев. Я использую xcode 4.2

Знаете ли вы, можно ли продлить награду на день или два?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...