diff options
author | leozwang <leozwang@google.com> | 2014-07-30 15:23:46 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-07-25 21:16:23 +0000 |
commit | a361503e3e68d1b26ce737547c4e1d53a03ec2d9 (patch) | |
tree | fb271039e3081162d9908f33b2b913b86144377c /adb | |
parent | 4bb951a85a4888540caba4f14f18e99917d4c994 (diff) | |
parent | d3fc15f4841a8cbfd15fa9f051f2712266b5cd78 (diff) | |
download | system_core-a361503e3e68d1b26ce737547c4e1d53a03ec2d9.zip system_core-a361503e3e68d1b26ce737547c4e1d53a03ec2d9.tar.gz system_core-a361503e3e68d1b26ce737547c4e1d53a03ec2d9.tar.bz2 |
Merge "Consolidate adb trace macro defines into its own header file." into lmp-dev
Diffstat (limited to 'adb')
-rw-r--r-- | adb/adb.h | 104 | ||||
-rw-r--r-- | adb/adb_trace.h | 143 | ||||
-rw-r--r-- | adb/fdevent.c | 13 |
3 files changed, 146 insertions, 114 deletions
@@ -17,11 +17,9 @@ #ifndef __ADB_H #define __ADB_H -#if !ADB_HOST -#include <android/log.h> -#endif #include <limits.h> +#include "adb_trace.h" #include "transport.h" /* readx(), writex() */ #define MAX_PAYLOAD 4096 @@ -340,106 +338,6 @@ void put_apacket(apacket *p); int check_header(apacket *p); int check_data(apacket *p); -/* define ADB_TRACE to 1 to enable tracing support, or 0 to disable it */ - -#define ADB_TRACE 1 - -/* IMPORTANT: if you change the following list, don't - * forget to update the corresponding 'tags' table in - * the adb_trace_init() function implemented in adb.c - */ -typedef enum { - TRACE_ADB = 0, /* 0x001 */ - TRACE_SOCKETS, - TRACE_PACKETS, - TRACE_TRANSPORT, - TRACE_RWX, /* 0x010 */ - TRACE_USB, - TRACE_SYNC, - TRACE_SYSDEPS, - TRACE_JDWP, /* 0x100 */ - TRACE_SERVICES, - TRACE_AUTH, -} AdbTrace; - -#if ADB_TRACE - -#if !ADB_HOST -/* - * When running inside the emulator, guest's adbd can connect to 'adb-debug' - * qemud service that can display adb trace messages (on condition that emulator - * has been started with '-debug adb' option). - */ - -/* Delivers a trace message to the emulator via QEMU pipe. */ -void adb_qemu_trace(const char* fmt, ...); -/* Macro to use to send ADB trace messages to the emulator. */ -#define DQ(...) adb_qemu_trace(__VA_ARGS__) -#else -#define DQ(...) ((void)0) -#endif /* !ADB_HOST */ - - extern int adb_trace_mask; - extern unsigned char adb_trace_output_count; - void adb_trace_init(void); - -# define ADB_TRACING ((adb_trace_mask & (1 << TRACE_TAG)) != 0) - -/* you must define TRACE_TAG before using this macro */ -#if !ADB_HOST -# define D(...) \ - do { \ - if (ADB_TRACING) { \ - __android_log_print( \ - ANDROID_LOG_INFO, \ - __FUNCTION__, \ - __VA_ARGS__ ); \ - } \ - } while (0) -# define DR(...) \ - do { \ - if (ADB_TRACING) { \ - __android_log_print( \ - ANDROID_LOG_INFO, \ - __FUNCTION__, \ - __VA_ARGS__ ); \ - } \ - } while (0) -#else -# define D(...) \ - do { \ - if (ADB_TRACING) { \ - int save_errno = errno; \ - adb_mutex_lock(&D_lock); \ - fprintf(stderr, "%s::%s():", \ - __FILE__, __FUNCTION__); \ - errno = save_errno; \ - fprintf(stderr, __VA_ARGS__ ); \ - fflush(stderr); \ - adb_mutex_unlock(&D_lock); \ - errno = save_errno; \ - } \ - } while (0) -# define DR(...) \ - do { \ - if (ADB_TRACING) { \ - int save_errno = errno; \ - adb_mutex_lock(&D_lock); \ - errno = save_errno; \ - fprintf(stderr, __VA_ARGS__ ); \ - fflush(stderr); \ - adb_mutex_unlock(&D_lock); \ - errno = save_errno; \ - } \ - } while (0) -#endif -#else -# define D(...) ((void)0) -# define DR(...) ((void)0) -# define ADB_TRACING 0 -#endif /* ADB_TRACE */ - - #if !DEBUG_PACKETS #define print_packet(tag,p) do {} while (0) #endif diff --git a/adb/adb_trace.h b/adb/adb_trace.h new file mode 100644 index 0000000..8a5d9f8 --- /dev/null +++ b/adb/adb_trace.h @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __ADB_TRACE_H +#define __ADB_TRACE_H + +#if !ADB_HOST +#include <android/log.h> +#endif + +/* define ADB_TRACE to 1 to enable tracing support, or 0 to disable it */ +#define ADB_TRACE 1 + +/* IMPORTANT: if you change the following list, don't + * forget to update the corresponding 'tags' table in + * the adb_trace_init() function implemented in adb.c + */ +typedef enum { + TRACE_ADB = 0, /* 0x001 */ + TRACE_SOCKETS, + TRACE_PACKETS, + TRACE_TRANSPORT, + TRACE_RWX, /* 0x010 */ + TRACE_USB, + TRACE_SYNC, + TRACE_SYSDEPS, + TRACE_JDWP, /* 0x100 */ + TRACE_SERVICES, + TRACE_AUTH, + TRACE_FDEVENT, +} AdbTrace; + +#if ADB_TRACE + +#if !ADB_HOST +/* + * When running inside the emulator, guest's adbd can connect to 'adb-debug' + * qemud service that can display adb trace messages (on condition that emulator + * has been started with '-debug adb' option). + */ + +/* Delivers a trace message to the emulator via QEMU pipe. */ +void adb_qemu_trace(const char* fmt, ...); +/* Macro to use to send ADB trace messages to the emulator. */ +#define DQ(...) adb_qemu_trace(__VA_ARGS__) +#else +#define DQ(...) ((void)0) +#endif /* !ADB_HOST */ + +extern int adb_trace_mask; +extern unsigned char adb_trace_output_count; +void adb_trace_init(void); + +# define ADB_TRACING ((adb_trace_mask & (1 << TRACE_TAG)) != 0) + +/* you must define TRACE_TAG before using this macro */ +#if ADB_HOST +# define D(...) \ + do { \ + if (ADB_TRACING) { \ + int save_errno = errno; \ + adb_mutex_lock(&D_lock); \ + fprintf(stderr, "%s::%s():", \ + __FILE__, __FUNCTION__); \ + errno = save_errno; \ + fprintf(stderr, __VA_ARGS__ ); \ + fflush(stderr); \ + adb_mutex_unlock(&D_lock); \ + errno = save_errno; \ + } \ + } while (0) +# define DR(...) \ + do { \ + if (ADB_TRACING) { \ + int save_errno = errno; \ + adb_mutex_lock(&D_lock); \ + errno = save_errno; \ + fprintf(stderr, __VA_ARGS__ ); \ + fflush(stderr); \ + adb_mutex_unlock(&D_lock); \ + errno = save_errno; \ + } \ + } while (0) +# define DD(...) \ + do { \ + int save_errno = errno; \ + adb_mutex_lock(&D_lock); \ + fprintf(stderr, "%s::%s():", \ + __FILE__, __FUNCTION__); \ + errno = save_errno; \ + fprintf(stderr, __VA_ARGS__ ); \ + fflush(stderr); \ + adb_mutex_unlock(&D_lock); \ + errno = save_errno; \ + } while (0) +#else +# define D(...) \ + do { \ + if (ADB_TRACING) { \ + __android_log_print( \ + ANDROID_LOG_INFO, \ + __FUNCTION__, \ + __VA_ARGS__ ); \ + } \ + } while (0) +# define DR(...) \ + do { \ + if (ADB_TRACING) { \ + __android_log_print( \ + ANDROID_LOG_INFO, \ + __FUNCTION__, \ + __VA_ARGS__ ); \ + } \ + } while (0) +# define DD(...) \ + do { \ + __android_log_print( \ + ANDROID_LOG_INFO, \ + __FUNCTION__, \ + __VA_ARGS__ ); \ + } while (0) +#endif /* ADB_HOST */ +#else +# define D(...) ((void)0) +# define DR(...) ((void)0) +# define DD(...) ((void)0) +# define ADB_TRACING 0 +#endif /* ADB_TRACE */ + +#endif /* __ADB_TRACE_H */ diff --git a/adb/fdevent.c b/adb/fdevent.c index 5c374a7..43e600c 100644 --- a/adb/fdevent.c +++ b/adb/fdevent.c @@ -28,10 +28,12 @@ #include <stdarg.h> #include <stddef.h> +#include "adb_trace.h" #include "fdevent.h" #include "transport.h" #include "sysdeps.h" +#define TRACE_TAG TRACE_FDEVENT /* !!! Do not enable DEBUG for the adb that will run as the server: ** both stdout and stderr are used to communicate between the client @@ -57,16 +59,6 @@ static void fatal(const char *fn, const char *fmt, ...) #define FATAL(x...) fatal(__FUNCTION__, x) #if DEBUG -#define D(...) \ - do { \ - adb_mutex_lock(&D_lock); \ - int save_errno = errno; \ - fprintf(stderr, "%s::%s():", __FILE__, __FUNCTION__); \ - errno = save_errno; \ - fprintf(stderr, __VA_ARGS__); \ - adb_mutex_unlock(&D_lock); \ - errno = save_errno; \ - } while(0) static void dump_fde(fdevent *fde, const char *info) { adb_mutex_lock(&D_lock); @@ -78,7 +70,6 @@ static void dump_fde(fdevent *fde, const char *info) adb_mutex_unlock(&D_lock); } #else -#define D(...) ((void)0) #define dump_fde(fde, info) do { } while(0) #endif |