2010-02-19 42 views
2

錯誤warning: check_safe_call: could not restore current frame通常表示什麼?我在其他地方讀過這是一個記憶問題。它總是一個記憶問題?警告:check_safe_call:無法恢復當前幀

我在設備(而不是模擬器)上收到此錯誤。 NSZombieEnabled什麼也沒有顯示。如果我構建和調試,我的調試器窗口什麼都不顯示。峯值內存不高(3MB)。每次滾動地圖後,它都會以相同的錯誤崩潰。

任何想法如何調試?謝謝。

編輯:我在下面的答案中添加了我的崩潰原因(創建了太多的SQLite連接)。如果其他人得到此錯誤並找到他們的解決方案,請在下面張貼。這似乎是一個多種原因的錯誤消息。

+0

究竟你在做什麼? – 2010-02-19 17:02:15

回答

4

我已經看過這幾次,但從來沒有能夠直接指出它到一個問題徹底。雖然,時間我見過它通常有某種無限循環或遞歸出錯,調試器會捕獲它。我不知道你是否已經放置了足夠長的時間,但過了一段時間,調試器應該開始加載它所具有的堆棧幀,並將它們顯示在調試器窗口中。你應該能夠看到發生了什麼問題。

正如我所說的,通常當我看到這是由於無限循環或遞歸造成的,調試器將向同一個函數顯示5000個以上的調用,因此找到問題不應該太困難 - 但是,說這可能不是確切的問題。

只是我的兩分錢。

+0

這是我造成錯誤的確切問題。 – 2010-02-19 17:06:38

0

我也遇到了這個問題,但我發現它是由於圖像分辨率太高所致。它可以在模擬器中完美工作,但不在設備上。我將圖像的大小調整爲每英寸180像素的320x480像素,現在它完美地工作。

希望有幫助

0

我在我的代碼中發現錯誤。事實證明,我使用的SQLite數據庫正在導致崩潰。我忘記關閉數據庫連接,並且每次代碼碰到特定的函數時,我都會打開一個新的連接。最終有太多,應用程序崩潰。

看起來很多這些錯誤都與一種超載有關(如Jasarien所說)。

相關問題