SIGABRT和SIGTERM THREAD在所有程序中

时间:2012-02-16 21:24:49

标签: iphone objective-c xcode

我使用Xcode 4.2,我有90%的时间收到此消息:

@autoreleasepool 
{
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
  

线程1:编程接收信号“SIGABRT”

当它工作并退出iOS Simulator时,我得到:

  

线程!:程序接收信号SIGTERM

现在所有程序(甚至简单的单音按钮教程)都在我退出Simulator之前完美无缺SIGTERM我得到SIGABRT当我再次尝试再跑时,我得到{{1}}。 我正在变得偏执狂.ddddddddddd。

  

错误:未知错误代码。   这通常意味着此进程的另一个实例已在运行或挂起在debugger.sharedlibrary apply-load-rules all   当前语言:auto;目前客观的c   (gdb)

我应该做什么?

3 个答案:

答案 0 :(得分:6)

你尝试的一些事情在过去(按此顺序)帮助了我:

  1. 产品>清洁
  2. 手动从设备上卸载/删除您的应用。
  3. 在iOS模拟器中,iOS模拟器> “重置内容和设置”。
  4. 删除导致问题的项目的“派生数据”中的所有内容。 (截图)在管理器中>项目
  5. 退出xCode。
  6. 重新启动您的计算机。
  7. enter image description here

    我注意到,当您使用相同的名称制作多个项目时,派生数据会导致最多的问题,无论是故意的还是偶然的。

    编辑:更多细节..

    我获得SIGTERM的唯一一次是当您在“设备”上运行测试然后在xCo​​de中停止之前从设备退出应用程序,然后尝试在设备上再次启动它。如果它更像是一个SIGABRT问题,我总是检查我的IBOutlets。每次删除插座的代码时都会发生SIGABRT,但不要删除IB中的连接。 [xcode 4.2.1]

答案 1 :(得分:1)

之前的应用程序仍然在模拟器中“卡住”。尝试完全退出模拟器,清理项目,然后再次尝试构建。

编辑:完全重启你的mac听起来像下一步。根据我的经验,这个错误总是与模拟器的问题有关,而不是代码本身。

答案 2 :(得分:0)

SIGABRT表示您的程序正在抛出异常。如果您没有显式设置断点以在抛出异常时触发,那么Xcode会在main中显示SIGABRT,这对调试没用。

您需要add an exception breakpoint,以便查看抛出异常的位置。