WatchDog检测到死锁重启分析

WatchDog检测到死锁重启分析

watchdog 的类型:

 

1:android.server.ServerThread被block,LOG如下:  

02:06:22.571 W/Watchdog( 307): *** WATCHDOG KILLING THE SYSTEM: null


2:诸如windowManagerService ,activityManagerService等死锁,LOG如下:
02:06:22.571 W/Watchdog( 307): *** WATCHDOG KILLING THE SYSTEM: activityManagerService


如何DEBUG watchdog? 第一种类型的watchdog,我们要首先看trace.txt中serverThread的调用栈. 为什么呢? 因为system server启动服务 要分两个过程, 一个是init1()和 init2(), 前者是启动native service, 比如:surfaceFlinger, AudioFlinger... 后者就是启动android services, 比如: activityManager, WindowManager... 而启动android services是在serverThread中进行,代码如下: public static final void init2() {         Slog.i(TAG, "Entered the Android system server!");         Thread thr = new ServerThread();         thr.setName("android.server.ServerThread");         thr.start();     } 其次,如果遇到调用了native的代码,就可以用gdb或者crash继续debug. 第二种类型 看trace.txt中对应死锁进程的调用栈。
相关文章
相关标签/搜索