美文网首页
iOS跟踪异常堆栈方法

iOS跟踪异常堆栈方法

作者: 村雨灬龑 | 来源:发表于2017-05-17 17:31 被阅读0次

分析堆栈报告,例如:

2015-12-28 23:16:39.258 NSLogDemo[1010:65404] -[ViewController func]: unrecognized selector sent to instance 0x7fb2cb517fc0
2015-12-28 23:16:39.262 NSLogDemo[1010:65404] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController func]: unrecognized selector sent to instance 0x7fb2cb517fc0'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000108201e65 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x0000000107c78deb objc_exception_throw + 48
    2   CoreFoundation                      0x000000010820a48d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x000000010815790a ___forwarding___ + 970
    4   CoreFoundation                      0x00000001081574b8 _CF_forwarding_prep_0 + 120
    5   UIKit                               0x00000001085b1194 -[UIApplication sendAction:to:from:forEvent:] + 92
    6   UIKit                               0x00000001087206fc -[UIControl sendAction:to:forEvent:] + 67
    7   UIKit                               0x00000001087209c8 -[UIControl _sendActionsForEvents:withEvent:] + 311
    8   UIKit                               0x000000010871faf8 -[UIControl touchesEnded:withEvent:] + 601
    9   UIKit                               0x000000010862049b -[UIWindow _sendTouchesForEvent:] + 835
    10  UIKit                               0x00000001086211d0 -[UIWindow sendEvent:] + 865
    11  UIKit                               0x00000001085cfb66 -[UIApplication sendEvent:] + 263
    12  UIKit                               0x00000001085a9d97 _UIApplicationHandleEventQueue + 6844
    13  CoreFoundation                      0x000000010812da31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    14  CoreFoundation                      0x000000010812395c __CFRunLoopDoSources0 + 556
    15  CoreFoundation                      0x0000000108122e13 __CFRunLoopRun + 867
    16  CoreFoundation                      0x0000000108122828 CFRunLoopRunSpecific + 488
    17  GraphicsServices                    0x000000010b9faad2 GSEventRunModal + 161
    18  UIKit                               0x00000001085af610 UIApplicationMain + 171
    19  NSLogDemo                           0x0000000107777b4f main + 111
    20  libdyld.dylib                       0x000000010a95592d start + 1
)

第一行代码的表示 不能识别ViewController 中的func方法

一条堆栈信息有5部分

    19  NSLogDemo  0x0000000107777b4f   main  + 111
    ①      ②                 ③         ④      ⑤

第一部分:堆栈输出序列号,序号越大表示越早被调用
第二部分:调用方法(或函数)所属的框架(或库),上面信息中的是我们编写的项目名
第三部分:调用方法的内存地址,对我们用处不大
第四部分:调用方法(或函数)名,这个信息很重要
第五部分:调用方法编译后的代码偏移量,不是行号,没什么帮助

堆栈信息是要从下往上看的,下面的语句是NSLogDemo中的main函数调用UIKit中的UIApplicationMain方法

    18  UIKit  0x00000001085af610 UIApplicationMain + 171
    19  NSLogDemo  0x0000000107777b4f main + 111

最快的阅读方式是从上向下看,找到第二部分中第一个自己的方法 ,找到TA上一行中的第四部分,这个位置就是出错的地方

相关文章

  • iOS跟踪异常堆栈方法

    分析堆栈报告,例如: 第一行代码的表示 不能识别ViewController 中的func方法 一条堆栈信息有5部...

  • Effective Java(3rd)-Item75 在详细消息

      当程序由于未捕获异常而失败时,系统自动打印出异常的堆栈跟踪。堆栈跟踪包含异常的字符串表示,这是调用其toStr...

  • Java 异常概览

    异常处理机制的三个主要问题 What 异常类型回答了什么被抛出 Where 异常堆栈跟踪回答了在哪抛出 Why 异...

  • java7特性

    标签:java java7 特性 异常处理 异常类的构造器有可以接受两个参数,分别用来禁用忽略异常和禁用堆栈跟踪 ...

  • Java基础 (16) 异常

    异常处理机制主要回答了三个问题 What:异常类型回答了什么被抛出 Where:异常堆栈跟踪回答了在哪抛出 Why...

  • iOS_异常堆栈报告分析

    在使用 Xcode 工具的开发过程中, 面对运行异常, 很多初学者往往毫无头绪, 不知道如何跟踪异常堆栈, 如何分...

  • iOS Crash 流程化0:概览

    Ref:iOS Crash 捕获及堆栈符号化思路剖析 iOS Crash 流程化:概览崩溃捕获Mach 异常捕获U...

  • Fragment Transactions和Activity状态

    下面的堆栈跟踪和异常代码,自从Honeycomb的初始发行版本就一直使得StackOverflow很迷惑。 这篇博...

  • Fragment Transactions和Activity状态

    下面的堆栈跟踪和异常代码,自从Honeycomb的初始发行版本就一直使得StackOverflow很迷惑。 jav...

  • Oracle SQL 学习笔记30 - 分析、跟踪和调试plsq

    分析跟踪和调试plsql的一般方法 利用数据字典获取代码信息 利用DBMS_UTILITY获取运行堆栈和错误堆栈信...

网友评论

      本文标题:iOS跟踪异常堆栈方法

      本文链接:https://www.haomeiwen.com/subject/pmndxxtx.html