iOS应用程序崩溃,每隔一次启动,无法find错误
第一次启动应用程序,一切似乎运行良好。 我会打停止button,做一些工作,当我再次启动它,它似乎崩溃之前,甚至可以加载任何东西。 按停止键,再次点击运行,它工作正常。 直到我重复这个过程。
这是xcode突出显示与“线程1:信号SIGABRT”错误的地方。 这里显然没有用。
int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class])); } }
debugging控制台除了(lldb)之外什么都没有显示(所以我想停止,而不是崩溃在这一点)所以,当我执行一个BT
这是我得到的:
(lldb) bt * thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101 frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140 frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348 frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123 frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36 frame #6: 0x000163f9 UIKit`UIApplicationMain + 600 frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16 frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53 (lldb)
以下是我迄今为止所做的:
- 执行“清洁”
- 我已经重置模拟器并重置我的电脑
- 我已经评论了视图控制器中的所有代码,仍然崩溃
- 我已经注释了应用程序委托中的所有代码,仍然崩溃
- 但是….我已经运行在Xcode以外的设备上的应用程序,它似乎工作得很好。
- (编辑)我已经删除/重新安装xcode,以及所有内容(模拟器,文档)从各种caching文件夹(这阻止xcode在新的下载后自动重新安装旧的)。 尽pipe如此,仍然无法find命令行工具的位置。 仍然崩溃。
尽pipe如此,应用程序仍然每秒或其他发射崩溃。
事情是我没有问题,直到最新的Xcode更新。 它可能是一个Xcode错误?
(编辑)我也运行OSX的最新开发版本。 这可能会干扰吗?
似乎是OS X 10.8.4和LLDB的组合 。 正如Kenster所说,切换到GDB使问题消失。
编辑:
这是由debugging服务器(我听到)的竞争条件造成的。
如果你想继续使用LLDB,这里有一个修正:在应用程序已经在模拟器中运行的时候,不要点击运行,而是在Xcode(⌘-。)中杀死它,说5次“我爱Xcode”并再次运行(⌘- R)。 它不会崩溃,我testing了它。
在Xcode 4.6.3中 修复
我也有这个问题。 看看这个post。 Xcode 4.6.2应用程序每次运行崩溃
基本上把你的debugging器从LLDB改成GDB。 我不能相信这是由于LLDB是越野车。
切换到GDB或重新启动设备/主机不能解决我的环境中的问题。
但是,修改相关XCode模式中的运行目标不再自动启动,而是改为“等待HelloWorld .app启动” 。
唯一的缺点是,这意味着要手动启动设备上的应用程序。 debugging器将会连接。