Crash日志的介绍

崩溃报告crash分析

crash.png

每一个崩溃报告的每个部分都有崩溃原因的信息,一般分为6部分
1 报告头 (Header )
2 异常代码(Exception Codes)
3 应用详情(Application Specific Information)

  1. 回溯(Backtrace)
  2. 线程状态(Thread State)
  3. 二进制映像(Binary Images)

Header

标头:开头部分描述了崩溃发生的环境


截屏2021-05-17 下午8.44.41.png

Incident Identifier: 报告的唯一标识符,两份报告决不会共享同一个事件标识符
CrashReporter Key:每个设备的匿名标识符,来自同一设备的两个报告将包含相同的值
Hardware Model:运行该应用程序的特定设备型号
Process:崩溃的进程的可执行文件名称
Path:可执行文件在磁盘上的位置。macOS用占位符值替换了用户可识别的路径组件,以保护隐私
AppStoreTools:Xcode的版本
AppVariant:通过应用程序细化产生的应用程序的特定变体
Code Type:崩溃的进程的CPU体系结构。ARM-64,ARM,X86-64,或X86
Parent Process:启动崩溃进程的进程的名称和进程ID
Coalition:包含应用程序的名称

Date/Time :崩溃的日期和时间
Launch Time:应用启动的日期和时间
OS Version:发生崩溃的操作系统版本

异常信息(Exception Codes)

截屏2021-05-20 下午4.35.58.png

该部分告诉app过程如何终止
Exception Type:终止进程的Mach异常的名称,以及括号中相应终止信号的名称Unix
Exception Subtype:异常代码描述
Exception Note:并非特定于一种异常类型的其他信息。如果包含此字段,则崩溃不是由硬件陷阱引起的,要么是由于进程已由操作系统明确终止,要么是由于进程被称为。如果此字段包含,则进程不会崩溃,但是操作系统随后可能已请求终止进程。如果此字段包含,则该过程不会终止,因为创建崩溃报告的问题不是致命的
VM Region Info:区域信息
Termination Signal:终止信号
Termination Reason:操作系统终止进程时指定的退出原因信息
Triggered by Thread或Crashed Thread:引发异常的线程

Exception Type

异常类型(Exception Type) 有以下几种:

  • Bad Memory Access(坏内存访问) [EXC_BAD_ACCESS // SIGSEGV // SIGBUS],这种类型的 Exception 是最为常见的 Crash ,通常是由于访问了无效的内存导致的。
    SIGSEGV:访问了无效地址,没有物理内存对应该地址,通常由于重复释放对象导致。
    SIGBUS:总线错误,与 SIGSEGV 不同的是,SIGBUS 访问的是有效地址,但总线访问异常,通常是访问了未对齐的数据。
    SEGV:代表无效内存地址,比如空指针、未初始化指针、栈溢出等。

  • Abnormal Exit (异常退出) [EXC_CRASH // SIGABRT]
    SIGABRT:收到Abort信号退出,通常Foundation库中的容器为了保护状态正常会做一些检测,例如插入nil到数组或字典中等会遇到此类错误。(常见的是再网络请求时发生)。

  • 其它异常类型,有些异常类型没有被命名,以16进制数字表示。
    0xbaaaaaad:意味着该Crash log并非一个真正的Crash,它仅仅只是包含了整个系统某一时刻的运行状态,由用户同时按[Home键]和音量键触发。
    0xbad22222:当VoIP程序在后台太过频繁的激活时,系统可能会终止此类程序。
    0x8badf00d:程序启动或者恢复时间过长被watch dog终止。
    0xc00010ff:程序执行大量耗费CPU和GPU的运算,导致设备过热,触发系统过热保护被系统终止。
    0xdead10cc:程序退到后台时还占用[系统资源](如通讯录)被系统终止。
    0xdeadfa11:程序无响应用户强制退出。当用户长按电源键,直到屏幕出现关机确认画面后再长按[Home键],将强制退出应用。我们可以合理认为用户这么做的原因是应用程序没有响应。

应用详情(Application Specific Information)

截屏2021-05-23 下午4.29.55.png

有些Crash出现时,会产生额外的信息,这些信息能帮助用户更好地了解应用程序终止时的运行环境。

回溯(Backtrace)

每个回溯的第一行列出了线程号和线程名。Xcode中的崩溃管理器提供的崩溃报告不包含线程名称。
24611262-ae2b2ad852292a85.png

在线程号之后,回溯的每一行代表回溯中的堆栈

  • 2 :堆栈帧号,堆栈帧按调用顺序排列
  • xxx:正在执行的函数的二进制文件的名称
  • 0x0000000107fc24a4:正在执行的机器指令的地址
  • [AFURLSessionManagerTaskDelegate URLSession:task:didCompleteWithError:]:在完全符号化的崩溃报告中,正在执行的函数的名称
  • 62104740:当前指令的字节偏移量。
  • AFURLSessionManager.m: 183:包含代码的文件名和行号

线程状态(Thread State)

这部分列出了发生Crash的线程的状态,即寄存器和寄存器的值


截屏2021-05-23 下午4.34.06.png

二进制映像(Binary Images)

24611262-90b566a1cb05ebaa.png

此列表包含上一示例中的组件:

  • 0x104324000 - 0x108707fff 进程中二进制映像的地址范围。第一个地址是二进制文件的加载地址
  • xxx 二进制名称
  • arm64 CPU
  • 2xxxxxxxxxxxxxxxxxxxx3 唯一标识二进制映像的构建UUID。当符号崩溃报告时,使用此值来找到相应的文件
  • /var/containers/Bundle/Application/.. 磁盘上二进制文件的路径
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 崩溃分析 崩溃日志(crash log) 根据符号表来监测崩溃位置 什么是符号表符号表就是指在Xcode项目编译后...
    纸简书生阅读 5,685评论 0 17
  • LLVM简介 XCode4.0以后,LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化...
    苦工阅读 9,531评论 1 16
  • Crash我们不得不面对的问题,但是好多人在遇到Crash的时候都无从下手,很多的时候都是凭着感觉找问题。今天我做...
    SunshineBrother阅读 1,073评论 0 1
  • Crash我们不得不面对的问题,但是好多人在遇到Crash的时候都无从下手,很多的时候都是凭着感觉找问题。今天我做...
    SunshineBrother阅读 2,960评论 0 4
  • 如何查看crash日志 头部信息 Incident Identifier: B6FD1E8E-B39F-430B-...
    cana_win阅读 2,341评论 0 1