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 }