【问题标题】:Understanding crash reports了解崩溃报告
【发布时间】:2015-04-22 08:48:21
【问题描述】:

我的第一个应用现在处于 beta 测试阶段,因此我需要了解通过我们的错误系统发送给我的崩溃报告。例如下面的报告是最近才发给我的,我不知道该怎么做:

Crash due to signal: SIGSEGV(SEGV_ACCERR) at 22363030
0 libobjc.A.dyliblookUpImpOrForward + 48
1 libobjc.A.dylib_class_lookupMethodAndLoadCache3 + 28
2 libobjc.A.dylib_objc_msgSend_uncached + 24
3 Retrostock v2_mh_execute_header + 1388888
4 CoreFoundation__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
5 CoreFoundation_CFXNotificationPost + 1780
6 Foundation-[NSNotificationCenter postNotificationName:object:userInfo:] + 72
7 UIKit-[UIDevice setOrientation:animated:] + 312
8 UIKit-[UIApplication handleEvent:withNewEvent:] + 1596
9 UIKit-[UIApplication sendEvent:] + 72
10 Retrostock v2_mh_execute_header + 750904
11 UIKit_UIApplicationHandleEvent + 632
12 GraphicsServices_PurpleEventCallback + 528
13 GraphicsServicesPurpleEventCallback + 32
14 CoreFoundation__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__+32
15 CoreFoundation__CFRunLoopDoSource1 + 340
16 CoreFoundation__CFRunLoopRun + 1608
17 CoreFoundationCFRunLoopRunSpecific + 476
18 CoreFoundationCFRunLoopRunInMode + 104
19 GraphicsServicesGSEventRunModal + 136

快速的 google 搜索告诉我,该应用程序在不应该触及内存的地方。我只在我的 iPhone 6 上测试过,这个错误是从 iPhone 5 报告的。

一般来说,我想知道如何在我的代码中重新定位这个错误,有没有办法做到这一点?

【问题讨论】:

  • 你需要象征崩溃。做一个谷歌搜索看看如何,但基本上你需要为该应用程序的确切版本保留.dsym 文件。
  • @trojanfoe 好的,所以我需要使用它崩溃的内存位置,在我的情况下这是 22363030 吗?
  • @trojanfoe 另外,所有的答案似乎都是来自苹果的崩溃报告,但我得到的只是上面的几行,没有文件或任何东西,这是如何解决的?

标签: ios xcode debugging remote-debugging crash-reports


【解决方案1】:

这篇文章可能会帮助你理解崩溃报告Raywenderlich - Demistifying iOS Application Crash Logs

从崩溃报告来看,很可能与旋转有关,而SIGSEGV 通常表示内存引用无效。

处理此类错误的更好方法是使用崩溃报告工具,例如 Crashlytics,它被 twitter 收购,现在是 Fabric 的一部分。使用它,他们会告诉你导致崩溃的确切问题以及在哪里你的代码崩溃发生了。我有告诉过你它是免费的吗??

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-23
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多