iOS   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Xcode – 中断异常,但没有可用的符号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述@H_618_4@ 我需要帮助找出在LLDB中获取有用信息所必需的神奇咒语. 我有一些奇怪的行为,我正在尝试调试,我可以可靠地重现该问题,但我还不了解其根本原因.我注意到抛出异常,所以我向Xcode添加了一个异常断点. 例外: CoreData: error: Serious application error. An exception was caught from the delegate of NSFetch
我需要帮助找出在LLDB中获取有用信息所必需的神奇咒语.

我有一些奇怪的行为,我正在尝试调试,我可以可靠地重现该问题,但我还不了解其根本原因.我注意到抛出异常,所以我向Xcode添加一个异常断点.

例外:

所以,随着我的断点到位,我得到以下堆栈跟踪:

这看起来非常有用!对于可重复使用的标题视图,看起来UICollectionViewFlowLayout正在发生一些困难…现在我只需要……哦.废话.等待.什么?

如何检查使用越界索引调用的堆栈跟踪的第1帧中的数组?我可以po<一些内存地址>在控制台检查它?当选择第11 – 1帧时,我无法在LLDB控制台中使用帧变量(from here).

我读这个堆栈跟踪的方式是:

>(第14帧)获取的结果控制器已选择托管对象上下文更改,并调用它的委托
>(第13帧)FRC委托是FHMemberDirectory的一个实例,它将消息-memberDirectoryDidChangeContent:completion:发送到视图控制器FHMemberDirectoryViewController,它是UICollectionViewController的子类.
>(第12帧)视图控制器调用-performBatchupdates:completion:on它的UICollectionView实例
>(第10-1帧)私人Apple的东西碰巧尝试在屏幕上布局集合视图;我认为!

…如果我错过了一些明显的东西,请告诉我!这个问题是关于调试的,我希望另一组眼睛或更多的专业知识可以启发我.

对于我未经训练的眼睛,这似乎是一个埋在Apple代码中的错误,但我仍然需要找到解决它的方法.我的问题的主旨是理解如何从不受我直接控制的代码中从LLDB控制台获取有用信息.

解决方法

从我的实验和研究中,答案是:

但是,您可以使用Objective-C运行时来调整方法实现并跳转到深层堆栈跟踪,从而为您提供参数和返回值的句柄.

现在我可以访问第3帧和第5帧传递的参数!

(事实证明…… usingData的论点是一个私有的Apple类.我能够更多地了解here类,但没有什么超级有用.最后我提交了radar并要求帮助解决DTS的问题).

大佬总结

以上是大佬教程为你收集整理的Xcode – 中断异常,但没有可用的符号全部内容,希望文章能够帮你解决Xcode – 中断异常,但没有可用的符号所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。