のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

ADB_TRACE

ADB_TRACE
デバッグ情報を表示する。
・スペース、カンマ、コロン、セミコロン(" ,:;")でくぎられたリストを使用する。
・1 か all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwpの文字を使用する。
・Traceのマスクをするようだ。

以下のようにセットして、monitor.batを立ち上げると

set ADB_TRACE=all
VoldCmdListener,Cryptfs,SurfaceFlinger,TransportControlView,PermissionCache

以下のログが見えるようになった。

02-14 03:20:49.036: V/TransportControlView(391): Create TCV com.android.internal.policy.impl.keyguard.KeyguardTransportControlView{421931e0 V.E..... ......I. 0,0-0,0 #1020308 android:id/keyguard_transport_control}

02-14 03:23:41.559: D/SurfaceFlinger(128): Screen acquired, type=0 flinger=0x40b9e318

02-14 03:23:51.668: D/VoldCmdListener(121): cryptfs cryptocomplete
02-14 03:23:51.668: E/Cryptfs(121): not running with encryption, aborting

02-14 03:12:27.325: D/PermissionCache(128): checking android.permission.HARDWARE_TEST for uid=1000 => granted (335 us)
    302 typedef enum {
    303     TRACE_ADB = 0,   /* 0x001 */
    304     TRACE_SOCKETS,
    305     TRACE_PACKETS,
    306     TRACE_TRANSPORT,
    307     TRACE_RWX,       /* 0x010 */
    308     TRACE_USB,
    309     TRACE_SYNC,
    310     TRACE_SYSDEPS,
    311     TRACE_JDWP,      /* 0x100 */
    312     TRACE_SERVICES,
    313 } AdbTrace;
     85 void  adb_trace_init(void)
     86 {
     87     const char*  p = getenv("ADB_TRACE");
     88     const char*  q;
     89 
     90     static const struct {
     91         const char*  tag;
     92         int           flag;
     93     } tags[] = {
     94         { "1", 0 },
     95         { "all", 0 },
     96         { "adb", TRACE_ADB },
     97         { "sockets", TRACE_SOCKETS },
     98         { "packets", TRACE_PACKETS },
     99         { "rwx", TRACE_RWX },
    100         { "usb", TRACE_USB },
    101         { "sync", TRACE_SYNC },
    102         { "sysdeps", TRACE_SYSDEPS },
    103         { "transport", TRACE_TRANSPORT },
    104         { "jdwp", TRACE_JDWP },
    105         { "services", TRACE_SERVICES },
    106         { "auth", TRACE_AUTH },
    107         { NULL, 0 }
    108     };
    109 
    110     if (p == NULL)
    111             return;
    112 
    113     /* use a comma/column/semi-colum/space separated list */
    114     while (*p) {
    115         int  len, tagn;
    116 
    117         q = strpbrk(p, " ,:;"); <=
    118         if (q == NULL) {
    119             q = p + strlen(p);
    120         }
    121         len = q - p;
    122 
    123         for (tagn = 0; tags[tagn].tag != NULL; tagn++)
    124         {
    125             int  taglen = strlen(tags[tagn].tag);
    126 
    127             if (len == taglen && !memcmp(tags[tagn].tag, p, len) )
    128             {
    129                 int  flag = tags[tagn].flag;
    130                 if (flag == 0) {
    131                     adb_trace_mask = ~0;
    132                     return;
    133                 }
    134                 adb_trace_mask |= (1 << flag); <=
    135                 break;
    136             }
    137         }
    138         p = q;
    139         if (*p)
    140             p++;
    141     }
    142 }