【问题标题】:In iOS, what caused this crash?在 iOS 中,是什么导致了这个崩溃?
【发布时间】:2012-12-14 01:36:27
【问题描述】:

我的 iOS 应用程序崩溃了,但他们只有几条消息,有些像这样。

Application received signal SIGABRT
(null)
(
0   CoreFoundation                      0x359c68a7 __exceptionPreprocess + 186
1   libobjc.A.dylib                     0x37d6d259 objc_exception_throw + 32
2   CoreFoundation                      0x359c6789 +[NSException raise:format:] + 0
3   CoreFoundation                      0x359c67ab +[NSException raise:format:] + 34
4   myapp                               0x00241bf9 _ZNSt11_Deque_baseIsSaIsEE15_M_create_nodesEPPsS3_ + 1432772
5   libsystem_c.dylib                   0x32dd27e3 _sigtramp + 38
6   libsystem_c.dylib                   0x32dc820f pthread_kill + 54
7   libsystem_c.dylib                   0x32dc129f abort + 94
8   libc++abi.dylib                     0x35d7ef6b abort_message + 46
9   libc++abi.dylib                     0x35d7c3f1 _ZL19safe_handler_callerPFvvE + 120
10  libc++abi.dylib                     0x35d7c451 _ZdlPv + 0
11  libc++abi.dylib                     0x35d7d825 __cxa_current_exception_type + 0
12  libobjc.A.dylib                     0x37d6d2a9 objc_exception_rethrow + 12
13  CoreFoundation                      0x3591c50d CFRunLoopRunSpecific + 404
14  CoreFoundation                      0x3591c36d CFRunLoopRunInMode + 104
15  GraphicsServices                    0x375b8439 GSEventRunModal + 136
16  UIKit                               0x33428cd5 UIApplicationMain + 1080
17  myapp                               0x000d4293 _mh_execute_header + 41619
18  myapp                               0x000ccd20 _mh_execute_header + 11552
)

我找不到导致此崩溃的原因,但它是我的应用程序中最常出现的问题。我很着急,有人知道吗?非常感谢。

【问题讨论】:

  • 我猜你不能用异常断点在本地重现。因为如果不符号化堆栈跟踪是不可能解决的(= 找出 _mh_execute_header + 41619 处的方法是什么等)。
  • 看起来崩溃报告是在 armv7s 设备上生成的,并且创建崩溃报告的任何内容都没有正确处理该芯片,从而导致符号化时出现错误符号。您应用的所有这些符号都是完全错误的。

标签: ios crash crash-reports


【解决方案1】:

如果您能够通过执行特定任务或仅长时间使用应用程序来重现此崩溃,您可以附加调试器并为[NSException raise] 设置断点。这样你就可以弄清楚你的应用程序的哪一部分被搞砸了,我过去用它来找出 NSArray 越界的地方..(我在所有源文件中都有十几个或更多)

其次,您可能应该“符号化”崩溃报告,以便您可以跟踪堆栈跟踪。这样您就可以找出代码中的哪个方法/类在搞砸了。

【讨论】:

    【解决方案2】:

    要查看崩溃回调,请尝试在您的项目中添加这个强大的功能:

    CrashKit

    这是一个异常捕获器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-18
      • 1970-01-01
      相关资源
      最近更新 更多