我第一次启动应用程序时,一切似乎都运行正常。我会点击停止按钮,做一些工作,当我再次启动时,它似乎在它甚至可以加载任何东西之前崩溃。 按停止,再次点击运行,它工作正常。直到我重复这个过程。
这是xcode用“Thread 1:signal SIGABRT”突出显示错误的地方。 显然这里没什么用。
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
}
}
调试控制台除了(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错误吗?
(编辑)我也在运行最新的OSX开发者版本。这会干扰吗?
答案 0 :(得分:75)
似乎是combination of OS X 10.8.4 and LLDB。正如肯斯特所说,切换到GDB会使问题消失。
修改强>
它是由调试服务器中的竞争条件引起的(我听说)。
如果你想继续使用LLDB,这是一个修复:当应用程序已经在模拟器中运行时,不是点击运行,而是在Xcode(⌘-。)中删除它,说“我喜欢Xcode”5次并再次运行(⌘-R)。它不会崩溃,我测试了它。
已修复
答案 1 :(得分:11)
我也有这个问题。看看这篇文章。 Xcode 4.6.2 app crashes on every second run
基本上将调试器从LLDB更改为GDB。我不敢相信这是因为LLDB有问题。
答案 2 :(得分:2)
切换到GDB或重启设备/主机无法解决我环境中的问题。
但是,将关联的XCode方案中的“运行”目标修改为不再自动启动,而是“等待 HelloWorld .app启动”。
唯一的缺点是,这意味着要在设备上手动启动应用程序。然后调试器将连接。