【问题标题】:iPhone simulators crash on app launchiPhone模拟器在应用程序启动时崩溃
【发布时间】:2011-10-11 01:48:53
【问题描述】:

升级到 Lion 和 XCode 4.1 后,我在使用 iPhone 模拟器时遇到了一些问题。当我启动 4.0、4.1 或 4.2(我从 Time Machine 恢复)的模拟器时,我几乎立即收到 EXC_BAD_ACCESS 错误:

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

在 4.3 上,我还立即在objc_msgSend 上收到 EXC_BAD_ACCESS 错误,据我所知,它甚至在应用程序启动之前就发生了。

我尝试清理目标无济于事,NSZombieEnabled 似乎也无济于事。

该应用程序在我的 iPhone 上完美运行。

编辑:卸载并重新安装 Xcode,没有帮助。一个空白的新项目运行良好。在设置了一些断点之后,它似乎在 main.m 中的这一行上失败了(这不是很有帮助):

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

编辑:根据要求,这里的线程 apply all 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

【问题讨论】:

  • 我可能会建议重新安装 SDK...
  • 当您的应用程序崩溃时,在调试器中运行 t a bt full(线程 apply all bt full)并根据您看到的内容编辑您的帖子
  • 好的,刚刚将调试器输出添加到问题中。
  • 重新安装 SDK。模拟器好像有问题。
  • 有没有机会在这里发布带有所有参数的 gcc 命令?

标签: iphone objective-c ios xcode ios-simulator


【解决方案1】:

好的,经过数周和数周后,我终于找到了解决方案:根据此评论修复我的链接器标志:EXC_BAD_ACCESS when copying or retaining Block

基本上你将-weak_library /usr/lib/libSystem.B.dylib 更改为-weak-lSystem

我最初添加这个是因为 Urban Airship 需要它。

【讨论】:

    【解决方案2】:

    您缺少模拟器的一些核心功能。 Springboard 是 iOS 应用启动器“桌面”的名称,您的模拟器系统似乎认为它没有实现。

    __springboard_unimplemented ()

    这种差异可以解释为什么您在模拟器上遇到问题,而不是在您的手机上。

    我建议完全删除 Xcode 和 iOS SDK,然后从 App Store 重新安装。

    编辑:我的一些谷歌搜索:

    最后一个被深埋在仅限 Apple 开发人员的领域内。这是来自论坛的文本转储,所以它的格式不是特别好,但它看起来是最有前途的。这看起来像底线:

    您的应用程序因名为 abort() 的东西而死机,如应用程序特定信息中所示。回溯显示 abort() 由 __springboard_unimplemented() 调用,这意味着您正在调用模拟器中存在但可能不在设备上的函数。该函数是 mcount_L1()。对 mcount_L1() 的调用来自分析工具。 要解决此问题,请确保您在构建设置中未选中“生成配置文件代码”。

    【讨论】:

    • 我确实尝试重新安装 SDK(在使用 sudo /Developer/Library/uninstall-devtools --mode=all 卸载后)无济于事。我还检查了,“生成配置文件代码” 未选中,并且 -pg 标志不存在。不过,感谢您的帮助!
    • 是否有可能在 Project 中未选中,但在 Target 中未选中?反之亦然?
    • 是的,我都勾选了,都没有勾选。
    • 疯了...抱歉,我帮不上忙。
    【解决方案3】:

    您的问题的答案在于您所写的内容:(我从 Time Machine 恢复)

    您正在使用与您的 Xcode 4.1 安装不匹配的模拟器的恢复版本。

    使用任何不属于已安装 SDK 的模拟器,后果自负。

    【讨论】:

    • 是的,尽管在删除所有内容并使用 4.1 附带的 4.3 模拟器后,我仍然遇到此问题。
    【解决方案4】:

    我也遇到了这个问题。我通过删除我的 /Developer 目录来修复它,安装 Xcode 4.1,然后安装 Xcode 4.2,然后安装最新的 iTunes 10.5 beta。从那以后就没有问题了。

    【讨论】:

    • 做了完全相同的事情(4.1),但我遇到了一些其他问题。它把它修好了
    • 嗯,虽然安装了 4.2,但我无法将应用程序提交到 App Store,因为它仍处于测试阶段。不过,我会尝试安装 iTunes 测试版。
    • 好的,尝试安装 iTunes 测试版,还是一样的问题。
    • 您可以使用4.1提交并安装4.2到另一个目录。我有 4.1 的 /Developer 和 4.2 的 /DeveloperBeta。按该顺序重新安装所有 3 个对我有用。
    【解决方案5】:

    您说您已升级到 Lion。你安装的是 Xcode 的 Lion 版本还是 Snow Leopard 版本?在我看来,您需要在 Lion 上安装 Xcode 的 Lion 版本。

    编辑: 修复在 cmets 中,将其放在这里。使用全新的 lion 安装重新创建项目文件并导入现有的源代码让事情重新开始。

    【讨论】:

    • 我是从 App Store 下载的,所以我猜我有 Lion 版本。
    • 你是不是在安装lion后从app store重新下载了?
    • 是的,我安装Lion后重新下载了。
    • 当您重新安装时,您是完全清除了原始目录,还是在其上重新安装?
    • /Developer 中的旧模拟器,但我在重新安装时完全删除了它们
    【解决方案6】:

    首先你可以重置你的模拟器并退出你的 Xcode。之后,您可以在 iPhone Simulator 中删除应用程序文件夹并从 /Library/Developer/Xcode/DerivedData 中删除所有派生数据。然后打开您的项目并根据您的应用功能检查是否缺少任何框架。

    【讨论】:

      【解决方案7】:

      凯尔。我一直有一个非常相似的问题。在过去的几天里,我的应用程序在模拟器上崩溃了,但在设备上运行良好。我一直很懒,只是在设备上测试。

      但是当我今晚回到家时,我会尝试一些事情,看看我是否能解决它。对我来说,崩溃不会在发布时立即发生。当我在文本字段中输入第二个字符时会发生这种情况。第一个字母没有任何不好的事情发生。仅在第二个。

      崩溃发生在两个地方之一。一个和你的一样 - 在 Main 中。第二个是在文本字段的回调之一中。它随机交替。调试窗口中没有堆栈跟踪。因为我面前没有电脑,所以我记不住所有的细节。

      我们的一个共同点是我有狮子。我正在使用 xcode 4.2

      你知道赏金是否可以延长一两天?

      【讨论】:

      • 我不确定赏金系统是如何运作的,看起来我仍然可以提供它,但我不确定。
      • 我刚刚卸载了我的 Xcode。我找不到我安装它的 dmg。所以我查看了.Trash。我发现那里的文件名是xcode_4.2_and_ios_sdk_5_beta_2_for_snow_leopard.dmg。所以我现在正在为 Lion 安装一个。
      • 我看到您对@slf 的评论。如果您在 Lion 之前从 App Store 获得它,那可能是为了 snow_leopard。可能有更新...
      • 安装完成。手指交叉。
      • 不走运。同样的错误在同一个地方。 ==> textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-20
      • 2022-01-06
      • 2012-01-31
      • 2019-03-12
      • 2018-05-04
      • 2021-01-15
      相关资源
      最近更新 更多