代码之家  ›  专栏  ›  技术社区  ›  Josh Knauer

应用程序崩溃,显示“看门狗已过期”。消息。没有堆栈跟踪或崩溃转储

  •  1
  • Josh Knauer  · 技术社区  · 14 年前

    我的应用程序在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).
    

    崩溃非常严重,大部分时间都会重新启动设备。调试程序刚退出,之后就没有崩溃日志了。

    “看门狗已过期”消息是否与此相关?或者这只是一个调试器在应用程序崩溃时失去触摸的伪制品?

    如果是相关的,这意味着什么?

    1 回复  |  直到 14 年前
        1
  •  2
  •   tc.    14 年前

    “看门狗已经过期了。”可能意味着 任何东西 . 消息的表达方式表明“本地”gdb(在Mac上运行)gdb在等待“远程”gdb(在电话上运行)的数据时超时。或者,“看门狗已经过期”可能是在手机重新启动前不久从控制台输出的。

    如果在应用程序运行时断开设备连接,它会显示什么?如果你把它关掉怎么办?如果你发出一个硬重置(睡眠+回家10秒)怎么办?

    如果它导致设备重新启动,则会发生严重错误。你的应用程序 不应该 可以将手机取下来,但有时有些东西会漏掉(iirc、某些版本的2.x上的uiImagePickerController遇到问题,即您的应用程序可能会被终止,或者手机会重新启动,具体取决于先启动哪个程序)。”大量的位图“听起来可能会导致coremanition(或iosurface等)耗尽视频内存。

    我会犹豫是否在后台线程中绘制,除非你非常小心线程安全(第一种近似,coreamination is和uikit不只是在4.0中被设置为“线程安全”的一些函数)。