Monkey跑出framework crash,最终发现是由于ANR产生了死锁,在WD检查锁时,kill掉了System Server进程引起的。
下面看看ANR的线程trace来分析死锁原因。
从主线程调用栈看,主线程block,而block的原因是等待锁:0x3fd06119,而该锁正在被thread80持有:
DALVIK THREADS(89):
"main"prio=5 tid=1 Blocked
| group="main" sCount=2 dsCount=0obj=0x73d2c050 self=0xb8ab27f8
| sysTid=556 nice=-2 cgrp=default sched=1/32handle=0xb6f5bbec
| state=S schedstat=( 0 0 0 ) utm=16794stm=14151 core=1 HZ=100
| stack=0xbe4e0000-0xbe4e2000 stackSize=8MB
| held mutexes=
atandroid.view.inputmethod.InputMethodManager.windowDismissed(InputMet