也许是因为afnetworking而崩溃了

时间:2019-01-16 09:13:38

标签: ios crash afnetworking

我的应用再次崩溃,这次导出设备崩溃日志的方式如下(注意第11和12条):

我试图用符号表示它,但是我不知道如何从项目的网络中获取dSYM文件。

Thread 8 name:  Dispatch queue: NSOperationQueue 0x2803df960 (QOS: UNSPECIFIED)
Thread 8 Crashed:
0   libsystem_malloc.dylib          0x0000000197cccda8 nanov2_allocate_from_block$VARIANT$armv81 + 528
1   libsystem_malloc.dylib          0x0000000197cccda8 nanov2_allocate_from_block$VARIANT$armv81 + 528
2   libsystem_malloc.dylib          0x0000000197ccc040 nanov2_allocate$VARIANT$armv81 + 140
3   libsystem_malloc.dylib          0x0000000197ccbf64 nanov2_malloc$VARIANT$armv81 + 60
4   libsystem_malloc.dylib          0x0000000197cd99a0 malloc_zone_malloc + 156
5   CoreFoundation                  0x000000019808e160 _CFRuntimeCreateInstance + 324
6   CoreFoundation                  0x000000019802b970 __CFArrayInit + 224
7   Foundation                      0x0000000198b75470 NSKVOCopyPendingNotificationStack + 152
8   Foundation                      0x0000000198b720f8 NSKeyValueWillChangeWithPerThreadPendingNotifications.llvm.16432713543580414412 + 364
9   Foundation                      0x0000000198ae8ad4 -[NSProgress _setValueForKeys:settingBlock:] + 272
10  Foundation                      0x0000000198aeb9dc -[NSProgress setCompletedUnitCount:] + 132
11  AFNetworking                    0x00000001051c965c 0x10519c000 + 185948
12  AFNetworking                    0x00000001051d1a18 0x10519c000 + 219672
13  CFNetwork                       0x0000000198898b94 __67-[NSURLSession delegate_dataTask:didReceiveData:completionHandler:]_block_invoke.303 + 36
14  Foundation                      0x0000000198b8c8bc __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 16
15  Foundation                      0x0000000198a94ab8 -[NSBlockOperation main] + 72
16  Foundation                      0x0000000198a93f8c -[__NSOperationInternal _start:] + 740
17  Foundation                      0x0000000198b8e790 __NSOQSchedule_f + 272
18  libdispatch.dylib               0x0000000197b356c8 _dispatch_call_block_and_release + 24
19  libdispatch.dylib               0x0000000197b36484 _dispatch_client_callout + 16
20  libdispatch.dylib               0x0000000197b0ce04 _dispatch_continuation_pop$VARIANT$armv81 + 404
21  libdispatch.dylib               0x0000000197b0c4e8 _dispatch_async_redirect_invoke + 592
22  libdispatch.dylib               0x0000000197b18aec _dispatch_root_queue_drain + 344
23  libdispatch.dylib               0x0000000197b1934c _dispatch_worker_thread2 + 116
24  libsystem_pthread.dylib         0x0000000197d1917c _pthread_wqthread + 472
25  libsystem_pthread.dylib         0x0000000197d1bcec start_wqthread + 4

如果不是网络连接故障,谁能看到原因?请帮助我。

1 个答案:

答案 0 :(得分:0)

因此,您的应用程序在Apple的代码(尤其是libsystem_malloc内部)中的崩溃非常严重。虽然我不确定,但我的猜测是您正在查看堆损坏的示例。

动态分配的内存由整个过程以及其中的所有过程共享。这意味着任何代码都可能潜在地覆盖和/或破坏系统其他(甚至不相关)部分使用的结构。在这种情况下,似乎已经弄乱了malloc使用的内部簿记结构。我猜想这是通过溢出缓冲区并在分配的内存范围之外进行写入来实现的。

我可以高度肯定地说,该特定报告没有为您提供足够的信息以归咎于AFNetworking。当访问损坏的内存时,它恰好不幸地无法运行。甚至一个内存损坏错误也可能导致各种不同的崩溃。因此,实际上不可能推断出任何一次特定崩溃的原因。

好消息是这种事情很常见。坏消息是很难追踪。我建议尝试使用Apple提供的内存调试工具。诸如NSZombies(通过工具),guardmalloc和malloc涂抹之类的东西。最好的选择就是修复所有可以找到的与内存相关的错误。