From aed3c61c4437ebb05eadfb3bf85d6962c30b9935 Mon Sep 17 00:00:00 2001 From: Yabin Cui Date: Tue, 22 Sep 2015 15:52:57 -0700 Subject: [PATCH] Adb: use VLOG() to replace D() for verbose logging. As there are too many D(), we can keep both VLOG() and D() now, and get rid of D() gradually. Change-Id: I2f1cb70bcab3e82c99fed939341d03f6b2216076 --- adb/Android.mk | 1 + adb/adb.cpp | 141 +------------------ adb/adb_auth.cpp | 2 +- adb/adb_auth_client.cpp | 2 +- adb/adb_auth_host.cpp | 3 +- adb/adb_client.cpp | 2 +- adb/adb_io.cpp | 14 +- adb/adb_trace.cpp | 174 ++++++++++++++++++++++++ adb/adb_trace.h | 50 +++---- adb/adb_utils.cpp | 6 +- adb/adb_utils.h | 2 +- adb/client/main.cpp | 2 +- adb/commandline.cpp | 4 +- adb/daemon/main.cpp | 2 +- adb/fdevent.cpp | 2 +- adb/file_sync_service.cpp | 2 +- adb/jdwp_service.cpp | 5 +- adb/remount_service.cpp | 2 +- adb/services.cpp | 2 +- adb/set_verity_enable_state_service.cpp | 2 +- adb/shell_service.cpp | 2 +- adb/sockets.cpp | 2 +- adb/sysdeps_win32.cpp | 2 +- adb/transport.cpp | 28 ++-- adb/transport_local.cpp | 2 +- adb/transport_usb.cpp | 2 +- adb/usb_linux.cpp | 2 +- adb/usb_linux_client.cpp | 8 +- adb/usb_osx.cpp | 2 +- adb/usb_windows.cpp | 2 +- 30 files changed, 253 insertions(+), 219 deletions(-) create mode 100644 adb/adb_trace.cpp diff --git a/adb/Android.mk b/adb/Android.mk index 5786d184a..4ee1cedbc 100644 --- a/adb/Android.mk +++ b/adb/Android.mk @@ -37,6 +37,7 @@ LIBADB_SRC_FILES := \ adb_auth.cpp \ adb_io.cpp \ adb_listeners.cpp \ + adb_trace.cpp \ adb_utils.cpp \ sockets.cpp \ transport.cpp \ diff --git a/adb/adb.cpp b/adb/adb.cpp index 19dd03db9..e97360339 100644 --- a/adb/adb.cpp +++ b/adb/adb.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" #include "adb.h" @@ -32,7 +32,6 @@ #include #include -#include #include #include @@ -53,22 +52,6 @@ #include #endif -#if !ADB_HOST -const char* adb_device_banner = "device"; -static android::base::LogdLogger gLogdLogger; -#else -const char* adb_device_banner = "host"; -#endif - -void AdbLogger(android::base::LogId id, android::base::LogSeverity severity, - const char* tag, const char* file, unsigned int line, - const char* message) { - android::base::StderrLogger(id, severity, tag, file, line, message); -#if !ADB_HOST - gLogdLogger(id, severity, tag, file, line, message); -#endif -} - std::string adb_version() { // Don't change the format of this --- it's parsed by ddmlib. return android::base::StringPrintf("Android Debug Bridge version %d.%d.%d\n" @@ -97,128 +80,6 @@ void fatal_errno(const char* fmt, ...) { exit(-1); } -#if !ADB_HOST -static std::string get_log_file_name() { - struct tm now; - time_t t; - tzset(); - time(&t); - localtime_r(&t, &now); - - char timestamp[PATH_MAX]; - strftime(timestamp, sizeof(timestamp), "%Y-%m-%d-%H-%M-%S", &now); - - return android::base::StringPrintf("/data/adb/adb-%s-%d", timestamp, - getpid()); -} - -void start_device_log(void) { - int fd = unix_open(get_log_file_name().c_str(), - O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0640); - if (fd == -1) { - return; - } - - // Redirect stdout and stderr to the log file. - dup2(fd, STDOUT_FILENO); - dup2(fd, STDERR_FILENO); - fprintf(stderr, "--- adb starting (pid %d) ---\n", getpid()); - unix_close(fd); -} -#endif - -int adb_trace_mask; - -std::string get_trace_setting_from_env() { - const char* setting = getenv("ADB_TRACE"); - if (setting == nullptr) { - setting = ""; - } - - return std::string(setting); -} - -#if !ADB_HOST -std::string get_trace_setting_from_prop() { - char buf[PROPERTY_VALUE_MAX]; - property_get("persist.adb.trace_mask", buf, ""); - return std::string(buf); -} -#endif - -std::string get_trace_setting() { -#if ADB_HOST - return get_trace_setting_from_env(); -#else - return get_trace_setting_from_prop(); -#endif -} - -// Split the space separated list of tags from the trace setting and build the -// trace mask from it. note that '1' and 'all' are special cases to enable all -// tracing. -// -// adb's trace setting comes from the ADB_TRACE environment variable, whereas -// adbd's comes from the system property persist.adb.trace_mask. -static void setup_trace_mask() { - const std::string trace_setting = get_trace_setting(); - if (trace_setting.empty()) { - return; - } - - std::unordered_map trace_flags = { - {"1", 0}, - {"all", 0}, - {"adb", TRACE_ADB}, - {"sockets", TRACE_SOCKETS}, - {"packets", TRACE_PACKETS}, - {"rwx", TRACE_RWX}, - {"usb", TRACE_USB}, - {"sync", TRACE_SYNC}, - {"sysdeps", TRACE_SYSDEPS}, - {"transport", TRACE_TRANSPORT}, - {"jdwp", TRACE_JDWP}, - {"services", TRACE_SERVICES}, - {"auth", TRACE_AUTH}, - {"fdevent", TRACE_FDEVENT}, - {"shell", TRACE_SHELL}}; - - std::vector elements = android::base::Split(trace_setting, " "); - for (const auto& elem : elements) { - const auto& flag = trace_flags.find(elem); - if (flag == trace_flags.end()) { - D("Unknown trace flag: %s", elem.c_str()); - continue; - } - - if (flag->second == 0) { - // 0 is used for the special values "1" and "all" that enable all - // tracing. - adb_trace_mask = ~0; - return; - } else { - adb_trace_mask |= 1 << flag->second; - } - } -} - -void adb_trace_init(char** argv) { -#if !ADB_HOST - // Don't open log file if no tracing, since this will block - // the crypto unmount of /data - if (!get_trace_setting().empty()) { - if (isatty(STDOUT_FILENO) == 0) { - start_device_log(); - } - } -#endif - - setup_trace_mask(); - android::base::InitLogging(argv, AdbLogger); - - D("%s", adb_version().c_str()); -} - apacket* get_apacket(void) { apacket* p = reinterpret_cast(malloc(sizeof(apacket))); diff --git a/adb/adb_auth.cpp b/adb/adb_auth.cpp index 2364f7b3a..1ffab0940 100644 --- a/adb/adb_auth.cpp +++ b/adb/adb_auth.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" #include "adb_auth.h" diff --git a/adb/adb_auth_client.cpp b/adb/adb_auth_client.cpp index cedc8479d..463b4968a 100644 --- a/adb/adb_auth_client.cpp +++ b/adb/adb_auth_client.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_AUTH +#define TRACE_TAG AUTH #include "sysdeps.h" #include "adb_auth.h" diff --git a/adb/adb_auth_host.cpp b/adb/adb_auth_host.cpp index 749fec218..7b314c3ea 100644 --- a/adb/adb_auth_host.cpp +++ b/adb/adb_auth_host.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_AUTH +#define TRACE_TAG AUTH #include "sysdeps.h" #include "adb_auth.h" @@ -452,7 +452,6 @@ int adb_auth_get_userkey(unsigned char *data, size_t len) } int adb_auth_keygen(const char* filename) { - adb_trace_mask |= (1 << TRACE_AUTH); return (generate_key(filename) == 0); } diff --git a/adb/adb_client.cpp b/adb/adb_client.cpp index ff6841511..63cb3c3af 100644 --- a/adb/adb_client.cpp +++ b/adb/adb_client.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" #include "adb_client.h" diff --git a/adb/adb_io.cpp b/adb/adb_io.cpp index 14e295f25..7788996ab 100644 --- a/adb/adb_io.cpp +++ b/adb/adb_io.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_RWX +#define TRACE_TAG RWX #include "adb_io.h" @@ -84,10 +84,8 @@ bool ReadFdExactly(int fd, void* buf, size_t len) { } } - D("readx: fd=%d wanted=%zu got=%zu", fd, len0, len0 - len); - if (ADB_TRACING) { - dump_hex(reinterpret_cast(buf), len0); - } + VLOG(RWX) << "readx: fd=" << fd << " wanted=" << len0 << " got=" << (len0 - len) + << " " << dump_hex(reinterpret_cast(buf), len0); return true; } @@ -96,10 +94,8 @@ bool WriteFdExactly(int fd, const void* buf, size_t len) { const char* p = reinterpret_cast(buf); int r; - D("writex: fd=%d len=%d: ", fd, (int)len); - if (ADB_TRACING) { - dump_hex(reinterpret_cast(buf), len); - } + VLOG(RWX) << "writex: fd=" << fd << " len=" << len + << " " << dump_hex(reinterpret_cast(buf), len); while (len > 0) { r = adb_write(fd, p, len); diff --git a/adb/adb_trace.cpp b/adb/adb_trace.cpp new file mode 100644 index 000000000..04b82f670 --- /dev/null +++ b/adb/adb_trace.cpp @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2015 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. + */ + +#include "sysdeps.h" +#include "adb_trace.h" + +#include +#include +#include + +#include +#include + +#include "adb.h" + +#if !ADB_HOST +#include +#endif + +#if !ADB_HOST +const char* adb_device_banner = "device"; +static android::base::LogdLogger gLogdLogger; +#else +const char* adb_device_banner = "host"; +#endif + +void AdbLogger(android::base::LogId id, android::base::LogSeverity severity, + const char* tag, const char* file, unsigned int line, + const char* message) { + android::base::StderrLogger(id, severity, tag, file, line, message); +#if !ADB_HOST + gLogdLogger(id, severity, tag, file, line, message); +#endif +} + + +#if !ADB_HOST +static std::string get_log_file_name() { + struct tm now; + time_t t; + tzset(); + time(&t); + localtime_r(&t, &now); + + char timestamp[PATH_MAX]; + strftime(timestamp, sizeof(timestamp), "%Y-%m-%d-%H-%M-%S", &now); + + return android::base::StringPrintf("/data/adb/adb-%s-%d", timestamp, + getpid()); +} + +void start_device_log(void) { + int fd = unix_open(get_log_file_name().c_str(), + O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0640); + if (fd == -1) { + return; + } + + // Redirect stdout and stderr to the log file. + dup2(fd, STDOUT_FILENO); + dup2(fd, STDERR_FILENO); + fprintf(stderr, "--- adb starting (pid %d) ---\n", getpid()); + unix_close(fd); +} +#endif + +int adb_trace_mask; + +std::string get_trace_setting_from_env() { + const char* setting = getenv("ADB_TRACE"); + if (setting == nullptr) { + setting = ""; + } + + return std::string(setting); +} + +#if !ADB_HOST +std::string get_trace_setting_from_prop() { + char buf[PROPERTY_VALUE_MAX]; + property_get("persist.adb.trace_mask", buf, ""); + return std::string(buf); +} +#endif + +std::string get_trace_setting() { +#if ADB_HOST + return get_trace_setting_from_env(); +#else + return get_trace_setting_from_prop(); +#endif +} + +// Split the space separated list of tags from the trace setting and build the +// trace mask from it. note that '1' and 'all' are special cases to enable all +// tracing. +// +// adb's trace setting comes from the ADB_TRACE environment variable, whereas +// adbd's comes from the system property persist.adb.trace_mask. +static void setup_trace_mask() { + const std::string trace_setting = get_trace_setting(); + if (trace_setting.empty()) { + return; + } + + std::unordered_map trace_flags = { + {"1", 0}, + {"all", 0}, + {"adb", ADB}, + {"sockets", SOCKETS}, + {"packets", PACKETS}, + {"rwx", RWX}, + {"usb", USB}, + {"sync", SYNC}, + {"sysdeps", SYSDEPS}, + {"transport", TRANSPORT}, + {"jdwp", JDWP}, + {"services", SERVICES}, + {"auth", AUTH}, + {"fdevent", FDEVENT}, + {"shell", SHELL}}; + + std::vector elements = android::base::Split(trace_setting, " "); + for (const auto& elem : elements) { + const auto& flag = trace_flags.find(elem); + if (flag == trace_flags.end()) { + LOG(ERROR) << "Unknown trace flag: " << elem; + continue; + } + + if (flag->second == 0) { + // 0 is used for the special values "1" and "all" that enable all + // tracing. + adb_trace_mask = ~0; + return; + } else { + adb_trace_mask |= 1 << flag->second; + } + } +} + +void adb_trace_init(char** argv) { +#if !ADB_HOST + // Don't open log file if no tracing, since this will block + // the crypto unmount of /data + if (!get_trace_setting().empty()) { + if (isatty(STDOUT_FILENO) == 0) { + start_device_log(); + } + } +#endif + + android::base::InitLogging(argv, AdbLogger); + setup_trace_mask(); + + VLOG(ADB) << adb_version(); +} + +void adb_trace_enable(AdbTrace trace_tag) { + adb_trace_mask |= (1 << trace_tag); +} diff --git a/adb/adb_trace.h b/adb/adb_trace.h index b4155dffd..78b2deb9e 100644 --- a/adb/adb_trace.h +++ b/adb/adb_trace.h @@ -22,36 +22,40 @@ /* 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 + * the adb_trace_init() function implemented in adb_trace.cpp. */ enum AdbTrace { - 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, - TRACE_SHELL + ADB = 0, /* 0x001 */ + SOCKETS, + PACKETS, + TRANSPORT, + RWX, /* 0x010 */ + USB, + SYNC, + SYSDEPS, + JDWP, /* 0x100 */ + SERVICES, + AUTH, + FDEVENT, + SHELL }; -extern int adb_trace_mask; -extern unsigned char adb_trace_output_count; -void adb_trace_init(char**); +#define VLOG_IS_ON(TAG) \ + ((adb_trace_mask & (1 << TAG)) != 0) -#define ADB_TRACING ((adb_trace_mask & (1 << TRACE_TAG)) != 0) +#define VLOG(TAG) \ + if (LIKELY(!VLOG_IS_ON(TAG))) \ + ; \ + else \ + LOG(INFO) // You must define TRACE_TAG before using this macro. #define D(...) \ - do { \ - if (ADB_TRACING) { \ - LOG(INFO) << android::base::StringPrintf(__VA_ARGS__); \ - } \ - } while (0) + VLOG(TRACE_TAG) << android::base::StringPrintf(__VA_ARGS__) + + +extern int adb_trace_mask; +void adb_trace_init(char**); +void adb_trace_enable(AdbTrace trace_tag); #endif /* __ADB_TRACE_H */ diff --git a/adb/adb_utils.cpp b/adb/adb_utils.cpp index 72ee9015d..7ff5c3df9 100644 --- a/adb/adb_utils.cpp +++ b/adb/adb_utils.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "adb_utils.h" @@ -151,7 +151,7 @@ bool mkdirs(const std::string& path) { return true; } -void dump_hex(const void* data, size_t byte_count) { +std::string dump_hex(const void* data, size_t byte_count) { byte_count = std::min(byte_count, size_t(16)); const uint8_t* p = reinterpret_cast(data); @@ -170,7 +170,7 @@ void dump_hex(const void* data, size_t byte_count) { line.push_back(c); } - D("%s", line.c_str()); + return line; } bool parse_host_and_port(const std::string& address, diff --git a/adb/adb_utils.h b/adb/adb_utils.h index b38ec5989..b9da980f2 100644 --- a/adb/adb_utils.h +++ b/adb/adb_utils.h @@ -31,7 +31,7 @@ bool mkdirs(const std::string& path); std::string escape_arg(const std::string& s); -void dump_hex(const void* ptr, size_t byte_count); +std::string dump_hex(const void* ptr, size_t byte_count); // Parses 'address' into 'host' and 'port'. // If no port is given, takes the default from *port. diff --git a/adb/client/main.cpp b/adb/client/main.cpp index 47234eee0..a225a5366 100644 --- a/adb/client/main.cpp +++ b/adb/client/main.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" diff --git a/adb/commandline.cpp b/adb/commandline.cpp index 4e93deea2..8aad97dcb 100644 --- a/adb/commandline.cpp +++ b/adb/commandline.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" @@ -1546,6 +1546,8 @@ int adb_commandline(int argc, const char **argv) { } else if (!strcmp(argv[0], "keygen")) { if (argc < 2) return usage(); + // Always print key generation information for keygen command. + adb_trace_enable(AUTH); return adb_auth_keygen(argv[1]); } else if (!strcmp(argv[0], "jdwp")) { diff --git a/adb/daemon/main.cpp b/adb/daemon/main.cpp index cb0cb3d79..8c3ca63c8 100644 --- a/adb/daemon/main.cpp +++ b/adb/daemon/main.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" diff --git a/adb/fdevent.cpp b/adb/fdevent.cpp index 666a15f89..2de9386fd 100644 --- a/adb/fdevent.cpp +++ b/adb/fdevent.cpp @@ -15,7 +15,7 @@ ** limitations under the License. */ -#define TRACE_TAG TRACE_FDEVENT +#define TRACE_TAG FDEVENT #include "sysdeps.h" #include "fdevent.h" diff --git a/adb/file_sync_service.cpp b/adb/file_sync_service.cpp index 8db9ca7fa..f588b40fb 100644 --- a/adb/file_sync_service.cpp +++ b/adb/file_sync_service.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_SYNC +#define TRACE_TAG SYNC #include "sysdeps.h" #include "file_sync_service.h" diff --git a/adb/jdwp_service.cpp b/adb/jdwp_service.cpp index 0fa07321b..4f0f740af 100644 --- a/adb/jdwp_service.cpp +++ b/adb/jdwp_service.cpp @@ -16,7 +16,7 @@ /* implement the "debug-ports" and "track-debug-ports" device services */ -#define TRACE_TAG TRACE_JDWP +#define TRACE_TAG JDWP #include "sysdeps.h" @@ -324,8 +324,9 @@ jdwp_process_event( int socket, unsigned events, void* _proc ) } CloseProcess: - if (proc->pid >= 0) + if (proc->pid >= 0) { D( "remove pid %d to jdwp process list", proc->pid ); + } jdwp_process_free(proc); return; } diff --git a/adb/remount_service.cpp b/adb/remount_service.cpp index 28932636d..35ba0566e 100644 --- a/adb/remount_service.cpp +++ b/adb/remount_service.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" diff --git a/adb/services.cpp b/adb/services.cpp index d0494ec02..1153c3106 100644 --- a/adb/services.cpp +++ b/adb/services.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_SERVICES +#define TRACE_TAG SERVICES #include "sysdeps.h" diff --git a/adb/set_verity_enable_state_service.cpp b/adb/set_verity_enable_state_service.cpp index bae38cf33..fd1740def 100644 --- a/adb/set_verity_enable_state_service.cpp +++ b/adb/set_verity_enable_state_service.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_ADB +#define TRACE_TAG ADB #include "sysdeps.h" diff --git a/adb/shell_service.cpp b/adb/shell_service.cpp index f1bc36d5a..714a2d80a 100644 --- a/adb/shell_service.cpp +++ b/adb/shell_service.cpp @@ -75,7 +75,7 @@ // to be more complex due to partial reads and non-blocking I/O so this model // was chosen instead. -#define TRACE_TAG TRACE_SHELL +#define TRACE_TAG SHELL #include "shell_service.h" diff --git a/adb/sockets.cpp b/adb/sockets.cpp index bd33d79bc..8562496aa 100644 --- a/adb/sockets.cpp +++ b/adb/sockets.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_SOCKETS +#define TRACE_TAG SOCKETS #include "sysdeps.h" diff --git a/adb/sysdeps_win32.cpp b/adb/sysdeps_win32.cpp index 5b23c793f..2b1ec48fe 100644 --- a/adb/sysdeps_win32.cpp +++ b/adb/sysdeps_win32.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_SYSDEPS +#define TRACE_TAG SYSDEPS #include "sysdeps.h" diff --git a/adb/transport.cpp b/adb/transport.cpp index 402546b0a..ffbb10798 100644 --- a/adb/transport.cpp +++ b/adb/transport.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_TRANSPORT +#define TRACE_TAG TRANSPORT #include "sysdeps.h" #include "transport.h" @@ -42,7 +42,7 @@ static std::list pending_list; ADB_MUTEX_DEFINE( transport_lock ); -static void dump_packet(const char* name, const char* func, apacket* p) { +static std::string dump_packet(const char* name, const char* func, apacket* p) { unsigned command = p->msg.command; int len = p->msg.data_length; char cmd[9]; @@ -73,9 +73,10 @@ static void dump_packet(const char* name, const char* func, apacket* p) { else snprintf(arg1, sizeof arg1, "0x%x", p->msg.arg1); - D("%s: %s: [%s] arg0=%s arg1=%s (len=%d) ", - name, func, cmd, arg0, arg1, len); - dump_hex(p->data, len); + std::string result = android::base::StringPrintf("%s: %s: [%s] arg0=%s arg1=%s (len=%d) ", + name, func, cmd, arg0, arg1, len); + result += dump_hex(p->data, len); + return result; } static int @@ -99,9 +100,7 @@ read_packet(int fd, const char* name, apacket** ppacket) } } - if (ADB_TRACING) { - dump_packet(name, "from remote", *ppacket); - } + VLOG(TRANSPORT) << dump_packet(name, "from remote", *ppacket); return 0; } @@ -113,9 +112,7 @@ write_packet(int fd, const char* name, apacket** ppacket) snprintf(buff, sizeof buff, "fd=%d", fd); name = buff; } - if (ADB_TRACING) { - dump_packet(name, "to remote", *ppacket); - } + VLOG(TRANSPORT) << dump_packet(name, "to remote", *ppacket); char* p = reinterpret_cast(ppacket); /* we really write the packet address */ int len = sizeof(apacket*); while(len > 0) { @@ -996,19 +993,16 @@ void unregister_usb_transport(usb_handle *usb) { adb_mutex_unlock(&transport_lock); } -#undef TRACE_TAG -#define TRACE_TAG TRACE_RWX - int check_header(apacket *p, atransport *t) { if(p->msg.magic != (p->msg.command ^ 0xffffffff)) { - D("check_header(): invalid magic"); + VLOG(RWX) << "check_header(): invalid magic"; return -1; } if(p->msg.data_length > t->get_max_payload()) { - D("check_header(): %u > atransport::max_payload = %zu", - p->msg.data_length, t->get_max_payload()); + VLOG(RWX) << "check_header(): " << p->msg.data_length << " atransport::max_payload = " + << t->get_max_payload(); return -1; } diff --git a/adb/transport_local.cpp b/adb/transport_local.cpp index 0c4315a55..bf0cc3c67 100644 --- a/adb/transport_local.cpp +++ b/adb/transport_local.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_TRANSPORT +#define TRACE_TAG TRANSPORT #include "sysdeps.h" #include "transport.h" diff --git a/adb/transport_usb.cpp b/adb/transport_usb.cpp index b520607bb..263f9e70b 100644 --- a/adb/transport_usb.cpp +++ b/adb/transport_usb.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_TRANSPORT +#define TRACE_TAG TRANSPORT #include "sysdeps.h" #include "transport.h" diff --git a/adb/usb_linux.cpp b/adb/usb_linux.cpp index f2b982040..c633f7fb8 100644 --- a/adb/usb_linux.cpp +++ b/adb/usb_linux.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_USB +#define TRACE_TAG USB #include "sysdeps.h" diff --git a/adb/usb_linux_client.cpp b/adb/usb_linux_client.cpp index c7a9b5852..817917e71 100644 --- a/adb/usb_linux_client.cpp +++ b/adb/usb_linux_client.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_USB +#define TRACE_TAG USB #include "sysdeps.h" @@ -491,12 +491,14 @@ static void usb_ffs_kick(usb_handle *h) int err; err = ioctl(h->bulk_in, FUNCTIONFS_CLEAR_HALT); - if (err < 0) + if (err < 0) { D("[ kick: source (fd=%d) clear halt failed (%d) ]", h->bulk_in, errno); + } err = ioctl(h->bulk_out, FUNCTIONFS_CLEAR_HALT); - if (err < 0) + if (err < 0) { D("[ kick: sink (fd=%d) clear halt failed (%d) ]", h->bulk_out, errno); + } adb_mutex_lock(&h->lock); diff --git a/adb/usb_osx.cpp b/adb/usb_osx.cpp index 8037606db..e0dcc756a 100644 --- a/adb/usb_osx.cpp +++ b/adb/usb_osx.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_USB +#define TRACE_TAG USB #include "sysdeps.h" diff --git a/adb/usb_windows.cpp b/adb/usb_windows.cpp index 5bb0100c3..d811b2446 100644 --- a/adb/usb_windows.cpp +++ b/adb/usb_windows.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#define TRACE_TAG TRACE_USB +#define TRACE_TAG USB #include "sysdeps.h"