Android Tombstones日志分析:原理、方法论
文章目录一、什么是 Tombstone?二、Tombstone 的生成原理三、Tombstone 文件内容详解1. 头部信息2. 调用栈(backtrace)3. 内存映射(maps)4. 线程列表5. 内存内容(可选)四、分析方法论(实战步骤)1. 快速定位关键信息2. 符号化(解析地址为函数名)3. 分析调用栈4. 检查寄存器5. 结合内存映射6. 使用工具自动化五、面试角度回答(话术模板)六、常见 Tombstone 案例速查七、面试官可能追问八、总结一、什么是 Tombstone?定义:当 Android 系统中的 Native 层(C/C++ 代码)发生崩溃(如段错误SIGSEGV、非法指令SIGILL、内存溢出SIGABRT等)时,系统会记录崩溃现场的详细信息,生成一个tombstone文件(墓碑文件),用于事后分析崩溃原因。文件位置:/data/tombstones/tombstone_XX(XX 为序号,从 00 开始,最多保留 10 个或 20 个,由ro.debuggable等属性控制)。生成条件:通常只有debuggable为 1 或 userdebug/eng 版本才会生成完整 tombstone;user 版本可能只生成简化版或通过dropbox上传。二、Tombstone 的生成原理信号捕获:当 Native 进程发生异常(如段错误),内核会向进程发送一个信号(如SIGSEGV)。信号处理器:Android 的libc.so(bionic)或debugger