2010-10-13 69 views
1

我的應用與在Xcode調試以下消息崩潰:應用程序崩潰,「看門狗已過期」。信息。沒有堆棧跟蹤或故障轉儲

Watchdog has expired. Remote device was disconnected? Debugging session terminated. 

The Debugger has exited due to signal 15 (SIGTERM).The Debugger has exited due to signal 15 (SIGTERM). 

崩潰是相當嚴重,並重新啓動設備的大部分時間。調試器剛剛退出,之後我沒有收到崩潰日誌。

「看門狗已過期」。消息有關嗎?或者,這只是調試器在崩潰時失去與應用程序接觸的人爲因素?

如果相關,是什麼意思?

+0

我應該補充一點,我懷疑我的drawLayer實現花了很長時間來呈現每個tile,並且正在被系統殺死。這是一個猜測。我無法在任何地方找到任何信息來支持這個想法。 – 2010-10-13 19:37:23

+0

是的,如果應用程序長時間不響應,看門狗將殺死該應用程序。 – beefon 2010-10-13 19:43:27

+0

從我能找到的,但它看起來像只發生如果應用程序無響應20秒。那個繪圖所採用的時間不是在那附近。此外,繪圖正在後臺線程上發生,用戶界面保持相當響應。 – 2010-10-13 19:59:10

回答

2

「看門狗已過期」。可能意味着任何東西。消息措辭的方式表明,「本地」GDB(在Mac上運行)GDB超時等待「遠程」GDB(運行在手機上)的數據。或者,「Watchdog已過期」可能在重啓前不久從電話的控制檯輸出。

如果在應用程序運行時斷開設備,它會顯示什麼內容?如果你關閉它會怎麼樣?如果您發出硬重置(睡眠+家10秒)會怎麼樣?

如果它導致設備重新啓動,則會發生嚴重錯誤。您的應用程序不應該能夠取下電話,但有時會有某些事情滑落(IIRC,某些版本的2.x版本的UIImagePickerController有問題,您的應用程序將會死亡或電話將重新啓動,具體取決於哪個先踢了)。 「大量的位圖」聽起來像是它可能會導致CoreAnimation(或IOSurface或其他)耗盡視頻內存。

我會毫不猶豫地在後臺線程中進行繪製,除非您非常小心線程安全性(對於第一個近似值,CoreAnimation和UIKit不是除少數幾個被「線程安全」 4.0)。

+0

「如果在應用程序運行時斷開設備,它會顯示什麼內容?」 ...喲,這是一個非常簡單的實驗:) ...只是拔下設備產生相同的消息。 「看門狗已過期」消息是無關緊要的,它只是調試器在應用程序崩潰時吐出的內容。 – 2010-10-14 13:33:18

+0

是的,這聽起來像USB斷開由於設備重啓... – 2010-11-21 06:03:31

相關問題