2012-09-06 53 views
3

我在的iOS程序得到一个EXC_BAD_ACCESS,我怀疑的原因是我的匿名块之一,但也有相当多的那些,我需要缩小候选人名单有点。

堆栈跟踪显示当前帧为__lldb_unnamed_function4866$$ProjectName。没有行号或源文件名,我可以看到。没有局部变量可见。调试器显示机器代码指令。这是在后台事件队列中运行的,所以在我的代码中没有任何其他位置的代码。

如何去找出什么作用,这是?

+1

__lldb_unnamed_function ......就是重新symbolication给人当符号不可因已被剥去。 – OrangeDog

回答

-1

尝试通过点击断点导航cmd + 6内的加号,设置异常断点。 为了得到调试最佳实践的概述,如果认为有必要考虑Stanford Lecture on iTunes U

+0

我这样做,它停在EXC_BAD_ACCESS,但仍然只有机器代码和原始机器寄存器。但是我现在发现代码不是我的一个块,而是在我使用的一个封闭源代码库的某处。我的示例应用程序(以及我的代码都没有)出现同样的错误。提交了一份错误报告。不过,我想知道'__lldb_unnamed_function'是什么以及如何调试它们。 – Thilo

0

我遇到类似的情况来了,而我不能帮助(还)有你的问题,我想我知道一个人谁可以。

退房http://www.realmacsoftware.com/blog/block-debugging,对于如何找出了很多有关问题的邪阻滞了阐述。

它对我没有什么帮助,因为我正在从崩溃日志开始工作,但是如果您仍然对此感兴趣,这会给您提供尽可能多的有关未命名块的信息。

警告,上面的链接向你揭示了许多神秘的知识,而且可能会让你觉得有点不够:)

[Editted添加] 不够好了吗?

通过拆卸搜索,做一些手工symbolication后,我得出的结论是,___lldb_unnamed_function是红鲱鱼。

我跟着How to manually symbolicate a crash log with atos,它在一个完全不同的功能,这些来自第三方库指出的手指,并且是坠机原因非常不错的人选(愤怒的监督与badf00d丧生。)

在这个调查过程中,我也碰到了一个很好的反编译器,我使用演示版来确认可疑代码在做什么,所以我给他们一个名字检查。