分析步骤
1. __exp_main.txt查看那个进程出现anr,找到进程id
2. SYS_ANDROID_EVENT_LOG搜索"am_anr",如果出现多个,则通过步骤1获取的进程id来区分哪一个才是需要的,然后可以找到相应的时间点
3. SWT_JBT_TRACES搜索出现anr的进程id,如果有多个栈,则通过步骤2获取到的时间点来确认哪一个才是需要的
Binder型分析步骤
1. __exp_main.txt查看那个进程出现anr,找到进程id
2. SYS_ANDROID_EVENT_LOG搜索"am_anr",如果出现多个,则通过步骤1获取的进程id来区分哪一个才是需要的,然后可以找到相应的时间点
3. SWT_JBT_TRACES搜索出现anr的进程id,如果有多个栈,则通过步骤2获取到的时间点来确认哪一个才是需要的
4. 步骤3的栈里并不能找到“locked”的字样,lock的地方可能发生在binder的bn端。
在SYS_BINDER_INFO里面搜索进程id,能发现和bp端通信的bn端的进程。
5. 在SWT_JBT_TRACES搜索步骤4获取的tid,能找到"locked"关键字,找到lock点