android中解读ANR产生的trace文件

1.java进程的trace文件解析
2.native进程的trace文件解析

当应用发生ANR时,系统会向目标进程发送SIGNAL_QUIT信号,ART虚拟机会捕获这个信号然后生成trace信息保存到data/anr/trace.txt文件中并kill掉目标进程。trace.txt文件信息中包括了进程id,发生异常的时间,进程下面所有线程相关的状态信息(比如线程名称,优先级,执行时间,加锁状态等等)。

通过debuggerd -b [pid],可输出Native进程的调用栈,这些信息是通过解析/proc/[pid]/maps而来的。

native进程发生crash时会输出:发生crash的函数指针地址 + 函数关联的so文件 + 函数名和函数地址偏移量,如下所示:
#01 pc 000000000001cca4 /system/lib64/libc.so (epoll_pwait+32)

帧号  pc指针    map_name    (函数名+偏移量)
#01 pc 000000000001cca4 /system/lib64/libc.so   (epoll_pwait+32)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。