iOS没有错误或堆栈跟踪崩溃

Mar*_*ell 35 crash debugging xcode ios xcode-instruments

很难跟踪iPad应用程序中的崩溃.这个困难的真正原因是当应用程序失败时没有错误或堆栈跟踪.它就像Keiser Soze一样消失,"就像那样,噗.他走了."

我已经在模拟器和设备上复制了崩溃.设备日志为零,控制台中没有任何内容,等等.

我知道在崩溃期间,一些CoreGraphics操作正在后台线程中发生.通常,三个左右的NSOperations正在踢一些图像混合.

混合包含CGContext*调用(DrawImage,SetBlendMode,SetAlpha等).NSOperation回调主线程中的委托来处理图像并将其设置为UIImage,因此它不应该是UI主线程冲突,但此时我不打算任何折扣.

我是否缺少一些Xcode技巧来追踪究竟发生了什么?或者至少可以更好地了解问题所在?

编辑我已经在仪器中运行应用程序跟踪内存使用情况,看到它在2MB左右稳定稳定.所以,不要认为这是一个记忆问题.但经过考虑,这块岩石稳定2MB似乎异常低落.有没有机会仪器没有获得CoreGraphics分配?

shr*_*ter 26

尝试阅读寄存器.

每当我的应用程序崩溃而没有错误时,在大多数情况下我都在寄存器中找到了异常.

首先使用左下角的+转到Exceptions选项卡和'Add Exception Breakpoint'. 在此输入图像描述

然后当应用程序崩溃时单击线程1下的"0 objc_exception_throw" 在此输入图像描述

最后在控制台中输入:

  • 寄存器读取(你应该得到一个寄存器列表)
  • po $ rax(通常是'rax'中的例外)

    (您应该在控制台上看到异常输出)

希望这可以帮助.


fzw*_*zwo 9

由于缺乏更好的解决方案,并且如果不明显,请将您的应用程序与NSLogs一起调整以发生这种情况,然后通过断点和/或其他日志从那里深入钻取.