使用llvm 2.0编译器构建EXEC_BAD_ACCESS时,ad-hoc测试崩溃

时间:2011-03-14 15:28:49

标签: iphone xcode ios gcc llvm

我将一个正在进行的项目从Xcode 3迁移到Xcode 4.LLID 2G编译器的临时构建在iPod Touch 2G(iOS 4.2.1)上崩溃,但在iPad(iOS 4.3)上运行良好。这在迁移到Xcode 4之前从未发生过。

当我在设备上使用调试配置进行测试时,没有发生崩溃。 当我使用ad-hoc配置(从发布中复制)进行测试时,它会崩溃。 当我将ad-hoc配置中的编译器版本从“LLVM 2.0”切换到“LLVM GCC4.2”或“GCC 4.2”时,不会崩溃。

因此,我将“LLVM GCC 4.2”用于ad-hoc和发布配置作为解决方法。但我想知道崩溃的可能原因是什么。

我没有发布崩溃报告,因为它只说崩溃0,没有堆栈流。

3 个答案:

答案 0 :(得分:3)

请尝试Xcode 4.0.2,其中包含针对LLVM编译器2.0的目标错误修复,可以纠正出现此类症状的问题。

谢谢!

-Chris

答案 1 :(得分:1)

我认为这与远程调试器无法以任何原因连接到手机上的应用程序有关。您的Xcode 3项目是否有设置get-task-allow的Entitlements.plist?你正在剥离调试符号吗?编译器优化?请查看设备控制台日志中的管理器窗口,如果您确定没有其他代码问题,我打赌您会看到有关com.apple.debugserver的错误。

我遇到了类似的情况,也许还没有完全解决。在我的“发布”方案中,使用Ad-Hoc构建配置,我告诉Xcode在运行时没有连接到GDB,但我注意到它仍然试图连接远程调试器,这就是我认为它会立即崩溃的原因。崩溃后,我会在Xcode中停止当前正在运行的进程,然后从手机中手动启动已安装的应用程序,该应用程序正常运行。

这很可能不是你的应用程序直接错误,而是项目的完美风暴,构建设置和远程调试器。尝试使用运行设置,也许你可以从中获得一个radr。

答案 2 :(得分:1)

升级到xCode 4.0.2,这就是您所需要的一切! 以下是解释此问题的有用链接:https://devforums.apple.com/thread/92279?start=50&tstart=0 (需要Apple帐户)