crazy_linker_debug.h revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CRAZY_LINKER_DEBUG_H 6#define CRAZY_LINKER_DEBUG_H 7 8// Set CRAZY_DEBUG on the command-line to 1 to enable debugging support. 9// This really means adding traces that will be sent to both stderr 10// and the logcat during execution. 11#ifndef CRAZY_DEBUG 12#define CRAZY_DEBUG 0 13#endif 14 15namespace crazy { 16 17#if CRAZY_DEBUG 18 19void Log(const char* fmt, ...); 20void LogErrno(const char* fmt, ...); 21 22#define LOG(...) ::crazy::Log(__VA_ARGS__) 23#define LOG_ERRNO(...) ::crazy::LogErrno(__VA_ARGS__) 24 25#else 26 27#define LOG(...) ((void)0) 28#define LOG_ERRNO(...) ((void)0) 29 30#endif 31 32// Conditional logging. 33#define LOG_IF(cond, ...) \ 34 do { \ 35 if ((cond)) \ 36 LOG(__VA_ARGS__); \ 37 } while (0) 38 39#define LOG_ERRNO_IF(cond, ...) \ 40 do { \ 41 if ((cond)) \ 42 LOG_ERRNO(__VA_ARGS__); \ 43 } while (0) 44 45} // namespace crazy 46 47#endif // CRAZY_LINKER_DEBUG_H 48