调试tombstone不太方便,自己写了个小工具
1. 准备符号文件:
符号文件所在目录(symbols中的文件都是编译过程中没有剥离符号的目标文件,我们拷贝整个symbols文件夹)
2. tombstone日志
Tombstone中保存调用栈信息的标准格式
3.设定符号路径和日志文件路径
4.点击分析按钮
至此,分析出了调用栈信息,最后一次调用死在了_heapBitmapModifyObjectBitmap。位于
/dalvik/vm/alloc/HeapBitmapInlines.h第44行。
5.进一步分析,反编译符号文件(反编译文件保存在symbols目录以output+行号.txt命名)
6.打开反编译文件
7.直接搜索PC值(相对偏移地址rva)
这里再结合源代码分析,一般情况是内存读写错误造成。