iOS 友盟崩溃日志分析——Header
崩溃日志分为Header区、Exception Information区、Diagnostic Messages区、Exception Backtrace区、每个线程堆栈区、崩溃线程状态区、二进制文件列表区。
Header区
每个崩溃日志都有Header区,Header区包含了app崩溃时所处的场景。
友盟崩溃日志原文:
Incident Identifier: F538A5BE-56D2-4549-9775-3918F3ADD0A6
CrashReporter Key: 77062eac70b0efafc821ecfffbf9305892da9f59
Hardware Model: iPhone13,2
Process: App名称 [98889]
Path: /private/var/containers/Bundle/Application/6F79943F-890D-4232-8102-FAC39675E352/xxx.app/xxx
Identifier: com.xxx.xxx
Version: 2.3.2
BundleVersion: 4
k_crash_ver: 1.3.8
UDID: 2FCB056A-52F7-4ABD-B1B2-E32A2429666B
Code Type: ARM-64
Parent Process: ? [1]
Date/Time: 2022-11-30 11:01:07.328 +0800
OS Version: iOS 16.1 (20B82)
Report Version: 104
Exception Category: mach
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000191479af0
Crashed Thread: 0
分析:
header中的字段可以包含以下信息:
Incident Identifier:崩溃报告的唯一标识符
CrashReporter Key: 每个设备的匿名标识符。来自同一设备的两个报告包含相同的值。该标识符在重装系统时重置。
Hardware Model:运行程序的设备型号
Process:崩溃进程的可执行文件名。这与应用程序信息属性列表中的CFBundleExecutable值匹配。括号中的数字是进程ID。
Path:可执行文件在磁盘上的位置。macOS用占位符值替换用户可识别的路径组件,以保护隐私。
Identifier:崩溃进程的CFBundleIdentifier。如果二进制文件没有CFBundleIdentifier,则此字段包含进程名称或占位符值。
Version:App版本号
BundleVersion:构建版本号
k_crash_ver:友盟SDK版本号
UDID:设备的唯一设备识别符
Code Type:崩溃进程的CPU架构。该值是ARM-64、ARM、X86-64或X86之一。
Parent Process:启动崩溃进程的进程的名称和进程ID(方括号中)。
Date/Time:崩溃的日期和时间
OS Version:发生崩溃的操作系统版本,包括内部版本号。
Report Version:日志版本
参考链接:
https://www.meiwen.com.cn/subject/xboesttx.html
https://wenku.baidu.com/view/21c92e69757f5acfa1c7aa00b52acfc788eb9f57.html?wkts=1669946129880&bdQuery=ios+%E5%88%87%E6%8D%A2%E7%BD%91%E7%BB%9C%E5%B4%A9%E6%BA%83