在android开发过程中,不可避免的会出现apk崩溃的问题,apk崩溃出现java层时可以被java层捕获,native层崩溃时系统同样会打印出崩溃信息,用logcat查看时,会出现backtrace的打印,同时系统会将崩溃信息写入一个tombstone文件中,此类文件的存放路径在/data/tombstones文件夹中
如何分析tombstone文件,android已经为我们准备了相应的工具,最常用的就是addr2line、objdump,当然最方便的还是stack这个工具,其实stack也是批量调用addr2line。
addr2line使用方法
addr2line -e so文件 addr (注:so文件必须为带符号表的文件)
stack使用方法(工具在android源码下的development/scripts下面)
stack filename
我们只需要将tombstone文件中backtrace部分的内容拷贝到一个文件或者直接用tombstone也可以,等待一段时间后,就会输出解析好的内容,就能轻松地帮我们定位到哪个文件哪个函数哪一行
另外还可以用debuggerd工具对正在运行的程序产生tombstone