相关疑难解决方法(0)

Xcode异常断点不会打印抛出异常的详细信息

摘要

当我设置异常断点时,我没有收到异常消息.我如何获得异常消息?我已经知道如何获得堆栈跟踪,但这不包括异常消息.

细节

在过去,我使用Xcode开发了iOS应用程序,当出现问题时,我会收到错误/异常.该异常通常会有一个消息,如"无法取消引用null"或其他任何内容.

现在,在过去几周内使用Xcode 4.6.x,我从未收到过异常消息.我经常会得到一个SIGABRT.我在异常断点处放置了它,它会在那里中断,但它在iOS SDK中的某个程序集中关闭,我从来没有收到消息.

事实上,我不记得上次看到调试器控制台中出现的任何内容.

迁移到LLVM时异常信息是否消失了?

让我的应用程序在SDK中崩溃而不知道原因是非常令人沮丧的.我检查最后一个函数,以确保正确设置(分配对象等),这意味着我没有任何线索.

是否可能从过去保留的构建设置以某种方式关闭异常消息?

请重新打开问题.它现在有一个答案!

在评论中给出了一个很好的答案.这应该被提升为完整答案,因此我可以将问题标记为已回答,而其他有此问题的人可以找到它.为了实现这一点,需要重新打开这个问题!(在那之后我会删除这个请求.)

xcode objective-c ios

59
推荐指数
6
解决办法
2万
查看次数

在NSManagedObjectContext -save中调试SIGABRT:

从NSManagedObjectContext内部 - 保存:我收到此消息:

断言失败:(_ Unwind_SjLj_Resume()无法返回),函数_Unwind_SjLj_Resume,文件/SourceCache/libunwind/libunwind-24.1/src/Unwind-sjlj.c,第326行.

程序收到信号:"SIGABRT".

警告:无法读取/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib(未找到文件)的符号.

当我使用Run删除带有to-many的Experiment对象时,会发生这种情况,其中包含Sample,其中包含与Data一起使用的Sample.实验也有许多与页面有很多与显示,其中有许多运行.我提到这一点是为了指出图的周期性.这是一个简化的模型图:

替代文字

实验用户与之交互的顶级实体.实验包含多个Run对象.运行是从特定时间开始并在稍后结束的数据集合.由于可以同时从多个源收集数据,因此每个Run的每个源都有一个Sample.实验包含数据,需要查看和交互此数据.因此,每个实验都有一些页面对象,每个页面包含一些显示(例如,图形,米).显示器配置为显示属于实验的运行的某个子集.因此,虽然实验可能包含数十个运行,但其中一个页面一次只会显示一些运行.Display实体维护此列表.显示不是视图.视图将引用Display对象并通知Display对象的更改.

我一直在使用删除规则,但现在已经切换到"无操作"删除规则以及所有这些类的-prepareForDeletion方法.这种变化没有任何区别.在这两种情况下,错误消息都是相同的.

有趣的是,当我重新启动应用程序时,所有标记为删除的对象都已被删除.

此外,如果实验没有运行对象,则删除工作没有发生.就此而言,从实验中删除单个Run也可以.

我希望有人见过这样的东西,可以提供有关导致这种情况的建议.或者,如果某人有关于如何获取iOS 4.2.1的libXcodeDebuggerSupport.dylib的建议,那么这可能也会有所帮助.

更新:我按照这里的建议,并能够让Xcode找到适用于iOS 4.2.1的libXcodeDebuggerSupport.dylib.但这对诊断问题毫无帮助 - 这种问题依然存在.

更新2:在阅读了一下并下载unwind-sjlj.c的版本之后,似乎我正在处理类似未捕获的异常.我不确定这对我有什么帮助......

更新3:感谢堪察加,我做了几天前我应该做的事情:打开"停止Objective-C Exceptions".这让我看到仍然保留了对已删除对象的引用 - 更糟糕的是,键值观察了已删除的对象.解决了这个固定的问题,我能够恢复使用删除规则而不是-prepareForDeletion方法.

iphone core-data nsmanagedobject nsmanagedobjectcontext

13
推荐指数
1
解决办法
5048
查看次数

如何用断点导航器中的定义替换 NSUncaughtExceptionHandler?

到目前为止,我NSUncaughtExceptionHandler在代码中使用过:

void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"*************************************************");
    NSLog(@"CRASH: %@", exception);
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
    NSLog(@"*************************************************");
}

NSUncaughtExceptionHandler *exceptionHandlerPtr = &uncaughtExceptionHandler;
Run Code Online (Sandbox Code Playgroud)

我知道在 Xcode 中我可以为所有异常添加异常断点

在此处输入图片说明

然后我可以编辑断点

在此处输入图片说明

最后我不知道如何配置它来替换我的代码NSUncaughtExceptionHandler

在此处输入图片说明

xcode breakpoints nsexception ios swift

2
推荐指数
1
解决办法
814
查看次数