(null)libc ++ abi.dylib:terminate抛出exception

我使用Xcode 4.5PR和iOS 6beta 2。

我没有更改任何代码,我的应用程序抛出标题中提到的例外。

我用debugging窗口function引起这个exception,但它显示

0x38dda960: push {r4, r5, r6, r7, lr} 

我怎样才能find问题? 我该如何解决?

如果你没有改变任何东西,这可能只是简单地与iOS 6testing版相关联。

但是,对于那些使用这个错误的人,这里有一些一般的build议:

1)它可能是你selectbuild立相同代码的模拟器:

如果您没有更改任何源代码,请检查以确保您的scheme仍然指向上一次处理的模拟器。 (例如,试图呈现一个模式视图控制器( presentModalViewController: ,但忘记有条件地使用iPad的弹窗,可能会导致这种情况。)

2)如果堆栈跟踪和控制台无用:

有时,堆栈中唯一的东西是mainUIApplicationMain ,这使得很难追踪你自己的源代码出了什么问题。 这可能是一个迹象,说明您正在调用或导致被调用的本地框架方法中的某些内容失败。

如果控制台中没有列出任何方法或特定对象,并且堆栈跟踪未指向您自己的类中的任何方法,请尝试尽可能将执行范围缩小到抛出exception的位置。 当在黑暗中select断点时,我倾向于使用二分search方法,select一个支点并上下移动执行顺序,并根据需要select一个新的“中途点”。

在C ++exception上设置一个断点来查找它被抛出的位置。

在这里输入图像说明

确保你使用的是xcode的开发者预览版本(4.5),而不是习惯性地打开发行版本(4.3.3),并且如果你没有更新项目设置,在将iOS 6项目设置更新为iOS 6之后,应用程序将不再在iOS 5.xx设备上运行。

它发生在这里,当我设置一个对象iso的禁忌对准超级视图

出现此错误的原因…

更改我的.h和.m文件中的某些iboutletvariables的名称后,出现此错误,但不是在这些variables的故事板链接中。 重做链接后,一切正常。 希望这可以帮助你们中的一些人。

有时候,如果你只是缺less一个库,会发生这种情况 – 我正在用MKMapView做一个快速示例应用程序,并且在将MapKit.framework添加到我的项目之前出现了这个错误。

在用户导入任何框架的时候会出现一些问题,所以在应用程序的资源文件夹的.pch文件中导入该框架。希望这可以帮助你们中的一些人。

这是发生在我身上,当我在“其他链接器标志”中设置-ObjC时,

这种例外可能由于各种原因而发生。 find确切根本原因的最佳方法是查看console 。 在那里你会发现这样的文字:

*** lorem ipsum lorem ipsum lorem ipsum
*** First throw call stack: (0x1d16012 0x16c3e7e 0xa4ef96 0x607704 0x6079a2 0x606876 0x617cb5 0x618beb 0x60a698 0x2b81df9 0x2b81ad0 0x1c8bbf5 0x1c8b962 0x1cbcbb6 0x1cbbf44 0x1cbbe1b 0x60617a 0x607ffc 0x1d1d 0x1c45) libc++abi.dylib: terminate called throwing an exception

这里文本lorem ipsum之前First throw call stack将精确定位为什么exception被抛出问题。 解决这个问题,你很好走。

当您从项目中手动删除故事板并将您的视图控制器用于没有故事板的情况时,通常会出现此错误。 确保你的视图控制器被添加到你的AppDelegate中你的窗口的根视图控制器,并且视图控制器init没有一个nib名字(因为在删除你的storyboard的时候你已经删除了它) – 而且最重要的是从你的pList告诉应用程序一个故事板文件应该存在的文件,例如“主要故事板文件基本名称(iPad)”或“主要故事板文件基本名称(iPhone)”。 一旦这些消失,你的应用程序将停止寻找一个故事板,你会像黄金猎犬金!

我得到了这个卡住了很长一段时间,然后我发现我可以通过为所有exception设置一个断点来得到exception的EXACT跟踪堆栈。