首页 > 解决方案 > EXC_BAD_ACCESS (SIGSEGV) iOS 应用程序

问题描述

我试图从 Crashlytics 报告的以下崩溃中理解

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x000001a20c7fbf81
VM Region Info: 0x1a20c7fbf81 is not in any region.  Bytes after previous region: 1784231739266  
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_NANO            0000000280000000-00000002a0000000 [512.0M] rw-/rwx SM=PRV  
--->  
      UNUSED SPACE AT END

Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [10401]
Triggered by Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libswiftCore.dylib              0x0000000104293578 0x103fe4000 + 2815352
1   MyApp                           0x00000001014770f4 objectdestroy.150Tm + 40
2   MyApp                           0x00000001014770f4 objectdestroy.150Tm + 40
3   libswiftCore.dylib              0x0000000104293584 0x103fe4000 + 2815364
4   libsystem_blocks.dylib          0x00000001d3993a44 _Block_release + 152
5   libdispatch.dylib               0x00000001d3937484 _dispatch_client_callout + 16
6   libdispatch.dylib               0x00000001d38e39ec _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068
7   CoreFoundation                  0x00000001d3e8d1bc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
8   CoreFoundation                  0x00000001d3e88084 __CFRunLoopRun + 1964
9   CoreFoundation                  0x00000001d3e875b8 CFRunLoopRunSpecific + 436
10  GraphicsServices                0x00000001d60fb584 GSEventRunModal + 100
11  UIKitCore                       0x00000002000e3558 UIApplicationMain + 212
12  MyApp                           0x0000000100d31160 main + 37216 (AppDelegate.swift:16)
13  libdyld.dylib                   0x00000001d3947b94 start + 4

我们升级到 Xcode 10 后开始看到这个崩溃,不确定它是否与 SDK 有关。我试图用符号来表示符号,atos但这并没有导致任何地方。唯一好的一面是我们可以release通过以下步骤在构建上重现崩溃

  1. 启动应用程序并登录
  2. 关闭 Wifi(设备上没有互联网连接)
  3. 登出

该应用程序将在每 3-5 次尝试中崩溃 1 次

查看崩溃似乎该应用程序正在尝试访问无效的内存地址(很可能在对象被释放后尝试访问它)但无法缩小范围

有谁知道如何使用以下行中显示的地址偏移量,我可以将整数偏移量转换为十六进制并将其添加到0x103fe4000

 0   libswiftCore.dylib             0x0000000104293578 0x103fe4000 + 2815352
 3   libswiftCore.dylib             0x0000000104293584 0x103fe4000 + 2815364

非常感谢任何帮助,谢谢。

标签: ios

解决方案


推荐阅读