WatchDog检测到死锁重启分析

来源:互联网 发布:国内外大数据公司 编辑:程序博客网 时间:2024/06/06 04:48

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中对应死锁进程的调用栈。
 
 
0 0
原创粉丝点击