Android tombstone 分析
一般看到这个log就容易让人头大,
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x6b0818 in tid 4364 (Thread-166)
写惯了java,直接看exception里看错误非常舒服,但是要查底层库崩溃总是让人无从下手。
最近刚好也碰到了这个问题,来看看是怎么查到崩溃的地方吧:
参考1
参考2
-
1,先看logcat打印,同时把崩溃的tombstone拉出来一起分析,
-
2,从log可以看到是哪个进程的哪个线程在哪个so库里发生了崩溃和tombstone保存目录
-
3,打开tombstone,找到应用崩溃的backtrace,崩溃是从底下向上看的
-
4,再找到崩溃对应的地址,用linux上的addr2line工具配合崩溃的地址来查对应的函数,同时配合工具链提供的objdump,来看反汇编代码找对应的崩溃点.
arm-linux-androideabi-addr2line -f -e libxyttcore.so 00000d98
objdump -S -D libc.so > deassmble_libc.txt
最后:
找到对应崩溃的函数,根据出现问题的操作来初步排查分析原因。