fir原始崩溃栈解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: fir原始崩溃栈解析

根据fir获取的BugHD崩溃栈和文件描述符解析原始崩溃栈

fir获取的BugHD崩溃栈

错误堆栈
KSCrash  libobjc.A.dylib   183341b90  objc_msgSend           105360
KSCrash  CoreFoundation    183ba5b44  _CFArrayReplaceValues  23364
KSCrash  CoreFoundation    183ba5994  CFArrayAppendValue     22932
KSCrash  CoreFoundation    183c7eb04               912132
KSCrash  CoreFoundation    183ba8c50  CFRunLoopRunSpecific   35920
KSCrash  GraphicsServices  185490088  GSEventRunModal        49288
KSCrash  UIKit             188e92088  UIApplicationMain      516232
KSCrash  caocao            1001adc44  _mh_execute_header     990276
KSCrash  libdyld.dylib     1837468b8               10424

xcode->windows->organizer 选中对应版本打的包击右键->show in finder->选中对应版本打的包击右键显示包内容->选中dSYMs->选中对应版本打的包击右键显示包内容,打开方式选终端->cd ..回到dSYM目录

Last login: Tue Jul 12 10:13:24 on ttys003
laojia:caocao.app.dSYM jiaguoshang$ pwd
/Users/jiaguoshang/Library/Developer/Xcode/Archives/2016-07-07/caocao 2 16-7-7 上午10.37.xcarchive/dSYMs/caocao.app.dSYM
laojia:caocao.app.dSYM jiaguoshang$ cd ..
laojia:dSYMs jiaguoshang$ pwd
/Users/jiaguoshang/Library/Developer/Xcode/Archives/2016-07-07/caocao 2 16-7-7 上午10.37.xcarchive/dSYMs
laojia:dSYMs jiaguoshang$ dwarfdump --lookup  183341b90 -arch armv7 caocao.app.dSYM
----------------------------------------------------------------------
 File: caocao.app.dSYM/Contents/Resources/DWARF/caocao (armv7)
----------------------------------------------------------------------
Looking up address: 0x000000000002cc2d in .debug_info... found!

0x0007077b: Compile Unit: length = 0x000026e9  version = 0x0002  abbr_offset = 0x00000000  addr_size = 0x04  (next CU at 0x00072e68)

0x00070786: TAG_compile_unit [133] *
             AT_producer( "Apple LLVM version 7.3.0 (clang-703.0.29)" )
             AT_language( DW_LANG_ObjC )
             AT_name( "/Users/jiaguoshang/Desktop/司机1.3.28/CaocaoDriver/caocao/viewcontroller/main/BookingListViewController.m" )
             AT_stmt_list( 0x00014051 )
             AT_comp_dir( "/Users/jiaguoshang/Desktop/司机1.3.28/CaocaoDriver" )
             AT_APPLE_optimized( 0x01 )
             AT_APPLE_major_runtime_vers( 0x02 )
             AT_low_pc( 0x00022518 )
             AT_high_pc( 0x0003318c )

0x00072042:     TAG_subprogram [187] *
                 AT_low_pc( 0x0002bda4 )
                 AT_high_pc( 0x0002e312 )
                 AT_frame_base( r7 )
                 AT_name( "__53-[BookingListViewController ConfirmReceiveBookOrder:]_block_invoke" )
                 AT_decl_file( "/Users/jiaguoshang/Desktop/司机1.3.28/CaocaoDriver/caocao/viewcontroller/main/BookingListViewController.m" )
                 AT_decl_line( 1947 )
                 AT_prototyped( 0x01 )
                 AT_APPLE_optimized( 0x01 )
                 AT_APPLE_isa( 0x01 )

0x0007207b:         TAG_lexical_block [168] *
                     AT_ranges( 0x00001468
                        [0x0002bdd6 - 0x0002be24)
                        [0x0002c00e - 0x0002c21a)
                        [0x0002c532 - 0x0002c596)
                        [0x0002c726 - 0x0002cc44)
                        [0x0002cd5e - 0x0002cf5a)
                        [0x0002d09e - 0x0002d1c4)
                        [0x0002d208 - 0x0002e2cc)
                         End )

0x0007213e:             TAG_lexical_block [168] *
                         AT_ranges( 0x000014f0
                            [0x0002c9aa - 0x0002ca24)
                            [0x0002ca2e - 0x0002cad4)
                            [0x0002cc22 - 0x0002cc44)
                            [0x0002cd5e - 0x0002cf5a)
                            [0x0002d09e - 0x0002d0e0)
                            [0x0002d0ea - 0x0002d1c4)
                            [0x0002d208 - 0x0002d22e)
                            [0x0002d238 - 0x0002d2b0)
                            [0x0002d32e - 0x0002d46e)
                             End )
Line table dir : '/Users/jiaguoshang/Desktop/司机1.3.28/CaocaoDriver/caocao/viewcontroller/main'
Line table file: 'BookingListViewController.m' line 2062, column 29 with start address 0x000000000002cc2c

Looking up address: 0x000000000002cc2d in .debug_frame... found!

0x00002020: FDE
        length: 0x0000000c
   CIE_pointer: 0x00000000
    start_addr: 0x0002bda4 __53-[BookingListViewController ConfirmReceiveBookOrder:]_block_invoke
    range_size: 0x0000256e (end_addr = 0x0002e312)
  Instructions: 0x0002bda4: CFA=sp  

可以看到是在刷新表格时数据源数组元素增加引起的。这个问题很让人头大啊!

注意:

编译宏中的代码出现闪退,是解析不出崩溃信息的。当然系统自己释放内存等崩溃也是解析不出崩溃栈有用信息的。

编译宏是为了统一修改,减少重复代码而设计的,他要求编译宏中的代码使用者负者。编译器不替你检查。所以编译宏有优店也有缺点,复杂的代码还是用全局静态函数代替编译宏为号。

如下列编译宏:

#define dispatch_main_sync_safe(block)\
    if ([NSThread isMainThread]) {\
        block();\
    } else {\
        dispatch_sync(dispatch_get_main_queue(), block);\
    }

这样使用:

                dispatch_main_sync_safe(^{
                    if(self.hitOnLineTime > 0)
                    {
                        if(self.onLineFailedBlock != nil)
                        {
                            self.onLineFailedBlock(YES);
                        }
                        self.hitOnLineTime = 0;
                        self.socketConnectStat = SOCKECT_CONNECT_INIT;
                    }

                });

若里面出现崩溃的问题,就解析不出崩溃栈,也不能单步跟踪到编译宏包含住的代码部分。

目录
相关文章
|
7月前
|
算法 前端开发 vr&ar
☆打卡算法☆LeetCode 225. 用队列实现栈 算法解析
☆打卡算法☆LeetCode 225. 用队列实现栈 算法解析
【栈和队列面试题】用栈实现队列(动图解析更清晰)
【栈和队列面试题】用栈实现队列(动图解析更清晰)
|
21天前
|
网络协议
网络通信的基石:TCP/IP协议栈的层次结构解析
在现代网络通信中,TCP/IP协议栈是构建互联网的基础。它定义了数据如何在网络中传输,以及如何确保数据的完整性和可靠性。本文将深入探讨TCP/IP协议栈的层次结构,揭示每一层的功能和重要性。
52 5
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
2月前
|
存储 C++
栈的深度解析:顺序栈与链栈的实现
栈的深度解析:顺序栈与链栈的实现
|
4月前
|
存储 前端开发 JavaScript
深入Web前端:栈与堆的优缺点全解析,让你大开眼界!
【8月更文挑战第23天】本文以问答形式解析了Web前端开发中至关重要的内存管理概念——栈与堆。栈采用后进先出(LIFO)原则存储执行上下文,适用于函数调用管理;而堆则灵活存储如对象和数组等复杂数据类型。栈操作迅速但访问受限,堆则提供动态空间分配但可能牺牲内存效率。理解两者特性有助于提升JavaScript编程技巧。
81 1
|
6月前
|
Java
Java栈(Stack)深度解析与实现
Java栈(Stack)深度解析与实现
282 1
|
7月前
|
存储 缓存 安全
JVM之JVM栈的详细解析
JVM之JVM栈的详细解析
58 0
|
7月前
|
存储
【深入解析:数据结构栈的魅力与应用】
【深入解析:数据结构栈的魅力与应用】
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
69 2

推荐镜像

更多