zoukankan      html  css  js  c++  java
  • 崩溃日志的实例

    http://www.cocoachina.com/industry/20130725/6677.html
    崩溃日志的实例
    让我们看看一个崩溃日志的实例,以使你在处理一些实际问题之前心里有谱。
     
    事不宜迟,见见你的新朋友吧:
     
    这报告看起来像天书。:) 我们分几部分来解读吧:
     
    (1) 进程信息
    第一部分是闪退进程的相关信息。
     
    Incident Identifier是崩溃报告的唯一标识符。
     
    CrashReporter Key 是与设备标识相对应的唯一键值。虽然它不是真正的设备标识符,但也是一个非常有用的情报:如果你看到100个崩溃日志的CrashReporter Key值都是相同的,或者只有少数几个不同的CrashReport值,说明这不是一个普遍的问题,只发生在一个或少数几个设备上。
     
    Hardware Model 标识设备类型。 如果很多崩溃日志都是来自相同的设备类型,说明应用只在某特定类型的设备上有问题。上面的日志里,崩溃日志产生的设备是iPhone 4s。
     
    Process 是应用名称。中括号里面的数字是闪退时应用的进程ID。
     
    接下来几行不言自明,无需赘述。
     
    (2) 基本信息
    这部分给出了一些基本信息,包括闪退发生的日期和时间,设备的iOS版本。如果有很多崩溃日志都来自iOS 6.0,说明问题只发生在iOS 6.0上。
     
    (3) 异常
    在这部分,你可以看到闪退发生时抛出的异常类型。还能看到异常编码和抛出异常的线程。根据崩溃报告类型的不同,在这部分你还能看到一些另外的信息。
     
    (4) 线程回溯
    这部分提供应用中所有线程的回溯日志。 回溯是闪退发生时所有活动帧清单。它包含闪退发生时调用函数的清单。看下面这行日志:
     
    它包括四列:
    帧编号—— 此处是2。
    二进制库的名称 ——此处是 XYZLib.
    调用方法的地址 ——此处是 0x34648e88.
    第四列分为两个子列,一个基本地址和一个偏移量。此处是0×83000 + 8740, 第一个数字指向文件,第二个数字指向文件中的代码行。
     
    (5) 线程状态
    这部分是闪退时寄存器中的值。一般不需要这部分的信息,因为回溯部分的信息已经足够让你找出问题所在。
     
    (6) 二进制映像
    这部分列出了闪退时已经加载的二进制文件。
  • 相关阅读:
    谈谈焦虑
    Bridge
    Abstract Factory
    开篇辞
    缓存穿透和缓存雪崩
    缓存与数据库的一致性思考
    GDB
    代码格式化
    CSMA/CA协议
    18年秋招(19届)复习指导+面经总结,手把手教你进大厂——阿里、网易、京东、多益等
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7880120.html
Copyright © 2011-2022 走看看