🧩 崩溃日志 · 符号化实战

30 章节 · 从入门到精通
📘 iOS & Android ⚙️ 工具链 · 原理 · 自动化 🧪 实战案例 2 例
01
崩溃日志初探 概念
什么是崩溃日志?为什么需要符号化?iOS与Android异同
02
符号化基础概念 核心
地址、符号、偏移量、基址、UUID、dSYM文件
03
iOS符号化工具链 atos
atos、symbolicatecrash、dwarfdump 实战
04
Android符号化工具链 addr2line
addr2line、ndk-stack、llvm-symbolizer 实战
05
dSYM文件管理 自动上传
自动上传、打包、匹配dSYM文件
06
符号表提取 Mach-O/ELF
从Mach-O/ELF中提取符号表,strip与不strip差异
07
栈回溯原理 ARM64
ARM64/ARM32/x86_64 栈帧结构,FP/LR/SP寄存器
08
手动栈回溯 无符号表
通过内存布局手动还原调用栈(无符号表场景)
09
异常信号与Mach异常 SIGSEGV
SIGSEGV、SIGABRT、EXC_BAD_ACCESS 等信号处理
10
崩溃日志字段详解 iOS Report
Incident Identifier, CrashReporter Key等字段含义
11
Android Tombstone 解析
信号、寄存器、内存映射、回溯栈解读
12
常见崩溃类型 野指针
野指针、内存踩踏、堆溢出、栈溢出、死锁
13
野指针定位 NSZombie
NSZombie、AddressSanitizer、MallocStackLogging
14
内存踩踏分析 malloc_history
malloc_history、vmmap、leaks 工具定位
15
堆栈溢出 递归检测
递归调用、大栈变量、线程栈大小设置
16
死锁检测 GCD
GCD死锁、pthread_mutex死锁、主线程卡死
17
Watchdog 崩溃 卡顿阈值
主线程卡顿超过阈值,RunLoop监控方案
18
OOM 崩溃 内存分析
Xcode Memory Graph、footprint 分析
19
后台崩溃 任务超时
后台任务超时、NSURLSession后台任务管理
20
符号化自动化 Python脚本
编写Python脚本批量符号化崩溃日志
21
Crash收集平台集成 Firebase
Firebase Crashlytics、Bugly、Sentry 接入与符号上传
22
日志聚合与去重 指纹聚类
根据崩溃栈指纹(UUID+偏移量)进行聚类
23
符号化服务搭建 自建服务器
自建符号化服务器,支持多版本、多架构
24
逆向视角 汇编
从汇编层面理解崩溃,反编译崩溃点附近代码
25
LLDB 动态调试 attach
通过LLDB attach进程,实时打印栈回溯
26
Core Dump 分析 iOS/Android
生成并分析iOS/Android Core Dump文件
27
Kernel Panic 分析 panic full
iOS panic full log 解读,panicString 分析
28
跨平台符号化 统一方案
统一iOS/Android/Windows/Linux 符号化方案
29
实战案例一 野指针
某App线上野指针崩溃,从日志到修复全流程
30
实战案例二 内存踩踏
某App内存踩踏导致随机崩溃,定位与修复过程