1.什么是tombstone
当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程号,线程号),死亡的地址(在哪个地址上发生了 Crash),死亡时的现场是什么样的(记录了一系列的堆栈调用信息)等等。
2.tombstone文件长什么样
一个tombstone文件大概包含以下信息
--------- beginning of crash F/libc ( 244): invalid address or address of corrupt block 0xb82f54a0 passed to dlfree I/libc ( 244): debuggerd_signal_handler called: signal=11, fn=0xb6fbdaa1 F/libc ( 244): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 244 (mediaserver) I/libc ( 244): exit from debuggerd_signal_handler W/NativeCrashListener( 916): Couldn't find ProcessRecord for pid 244 I/DEBUG ( 241): *** **
Tombstone文件是Android系统在动态库崩溃时生成的记录,包含进程ID、信号和堆栈信息。分析主要关注backtrace,通过addr2line、ndk-stack等工具可以定位错误源代码,提高调试效率。
订阅专栏 解锁全文
4140

被折叠的 条评论
为什么被折叠?



