我的应用程序在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 :(得分:2)
“看门狗已过期。”可能意味着任何。消息的措辞表明,“本地”GDB(在Mac上运行)GDB超时等待来自“远程”GDB(在手机上运行)的数据。或者,“Watchdog已过期”可能在重新启动前不久来自手机的控制台输出。
如果您在应用运行时断开设备,它会显示什么?如果关闭电源怎么办?如果您发出硬重置(Sleep + Home 10秒)怎么办?
如果它导致设备重启,则会出现严重错误。您的应用不应能够关闭手机,但有时会出现问题(IIRC,某些版本的2.x上的UIImagePickerController有问题导致您的应用被杀或手机会重启,取决于先踢的是什么)。 “大量位图”听起来可能会导致CoreAnimation(或IOSurface或其他)耗尽视频内存。
我会毫不犹豫地在后台线程中进行绘图,除非你非常小心线程安全性(对于第一个近似,CoreAnimation是和UIKit不是除了一些在4.0中“线程安全”的函数之外)。