首先从手机导出DB文件,使用MediatekLogView解析db.fatal.00.SWT.dbg,打开__exp_main.txt文件,可以看到Fatal的详细信息。
Exception Class: SWT
Exception Type: system_server_watchdog
Current Executing Process:
system_server
Trigger time:[2010-01-21 06:51:57.766112] pid:937
Backtrace:
Process: system_server
Subject: surfaceflinger hang.
Build: Infinix/H613IN/Infinix-X5516:9/PPR1.180610.011/E-IN-181105V47:user/release-keys
......
----- pid 937 at 2010-01-21 06:51:52 -----
Cmd line: system_server
异常的类型是system_server_watchdog,说明system_server在某个地方卡住了,没有及时喂狗。
首先要做的是:确认线程关系
确认线程状态为“Blocked”,然后通过关键字“held by”来进一步确认是哪一个线程拿住了锁
"main" prio=5 tid=1 Blocked
| group="main" sCount=1 dsCount=0 flags=1 obj=0x745e11f0 self=0xac95e000
| sysTid=937 nice=-2 cgrp=default sched=0/0 handle=0xb1080494
| state=S schedstat=( 1019835302578 1462214227781 2944063 ) utm=64697 stm=37286 core=0 HZ=100
| stack=0xbe070000-0xbe072000 stackSize=8MB
| held mutexes=
at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:22781)
- waiting to lock <0x039e9a6d> (a com.android.server.am.ActivityManagerService) held by thread 80
at android.app.ActivityManager.broadcastStickyIntent(ActivityManager.