2012-09-06 52 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喪生。)

在這個調查過程中,我也碰到了一個很好的反編譯器,我使用演示版來確認可疑代碼在做什麼,所以我給他們一個名字檢查。