2009-12-06 125 views
0

我的應用程序崩潰與EXC BAD ACCESS
我已經將NSZombieEnabled = YES添加到我的可執行文件的參數。
它給我那個日誌:
[CFArray發佈]:消息發送到釋放實例0x3c26340
和崩潰,只發生在應用程序第一次安裝在模擬器上..我按Build and Go再次應用程序的作品正如它應該。iPhone在第一次安裝時崩潰

假設地址0x3c26340不是應用程序崩潰的NSArray地址。 (設置斷點後,我發現它在NSArray訪問崩潰,但沒有與日誌中顯示的地址!!!!!!!!!)

也該地址是相同的地址,當我從模擬器中刪除應用程序並在第一次安裝時再次崩潰。 (地址保持不變!!!!)

任何人都可以請幫忙嗎?

在此先感謝

+0

不是沒有代碼。您可能是從存儲的數據創建一些對象。當數據不存在時,您創建數組,但不保留它,這將在數據存儲時完成。我過去曾經這樣做過,並且一直在尋找這個問題很長一段時間,但最終通過檢查所有存儲的數據'提取'來解決它。 – Joost 2009-12-06 11:24:50

+0

我已經檢查應用程序崩潰之前調試窗口中的所有內存地址,並沒有實例有該地址..最奇怪的是,地址保持不變 – 2009-12-06 11:42:27

回答

0

你需要的第一件事情是一個堆棧跟蹤,或者在崩潰之前調用最起碼的最後一個函數,要弄清楚到底是什麼數組變量正在墜機亂用。

可能發生的另一件事是數組在被正確初始化時被訪問。這將導致變量具有不是任何對象地址的一致數字。我仍然會和JoostK的評論一樣,這與第一次運行應用程序後創建的存儲對象有關。

+0

感謝您的答覆, 我修改了所有的代碼路徑設置斷點和檢查所有的變量值等等,你確定知道沒有爲這種例外提供堆棧跟蹤,並且我確信我想要每一步都有一個斷點:) 但事情是它在調用2功能正處於無處可逃的地步,這讓我瘋狂! – 2009-12-07 07:32:24