Xcode – 中断异常,但没有可用的符号
我需要帮助找出在LLDB中获取有用信息所必需的神奇咒语.
我有一些奇怪的行为,我正在尝试调试,我可以可靠地重现该问题,但我还不了解其根本原因.我注意到抛出异常,所以我向Xcode添加了一个异常断点. 例外:
所以,随着我的断点到位,我得到以下堆栈跟踪: 这看起来非常有用!对于可重复使用的标题视图,看起来UICollectionViewFlowLayout正在发生一些困难…现在我只需要……哦.废话.等待.什么? 如何检查使用越界索引调用的堆栈跟踪的第1帧中的数组?我可以po<一些内存地址>在控制台检查它?当选择第11 – 1帧时,我无法在LLDB控制台中使用帧变量(from here). 我读这个堆栈跟踪的方式是: >(第14帧)获取的结果控制器已选择托管对象上下文更改,并调用它的委托 …如果我错过了一些明显的东西,请告诉我!这个问题是关于调试的,我希望另一组眼睛或更多的专业知识可以启发我. 对于我未经训练的眼睛,这似乎是一个埋在Apple代码中的错误,但我仍然需要找到解决它的方法.我的问题的主旨是理解如何从不受我直接控制的代码中从LLDB控制台获取有用信息. 解决方法
从我的实验和研究中,答案是:
但是,您可以使用Objective-C运行时来调整方法实现并跳转到深层堆栈跟踪,从而为您提供参数和返回值的句柄. 现在我可以访问第3帧和第5帧传递的参数! (事实证明…… usingData的论点是一个私有的Apple类.我能够更多地了解here类,但没有什么超级有用.最后我提交了radar并要求帮助解决DTS的问题). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |