blob: 00304f8abbbaa95ca2ad8ab93e3a6d1a713b0858 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CRAZY_LINKER_DEBUG_H
#define CRAZY_LINKER_DEBUG_H
// Set CRAZY_DEBUG on the command-line to 1 to enable debugging support.
// This really means adding traces that will be sent to both stderr
// and the logcat during execution.
#ifndef CRAZY_DEBUG
#define CRAZY_DEBUG 0
#endif
namespace crazy {
#if CRAZY_DEBUG
void Log(const char* fmt, ...);
void LogErrno(const char* fmt, ...);
#define LOG(...) ::crazy::Log(__VA_ARGS__)
#define LOG_ERRNO(...) ::crazy::LogErrno(__VA_ARGS__)
#else
#define LOG(...) ((void)0)
#define LOG_ERRNO(...) ((void)0)
#endif
// Conditional logging.
#define LOG_IF(cond, ...) \
do { \
if ((cond)) \
LOG(__VA_ARGS__); \
} while (0)
#define LOG_ERRNO_IF(cond, ...) \
do { \
if ((cond)) \
LOG_ERRNO(__VA_ARGS__); \
} while (0)
} // namespace crazy
#endif // CRAZY_LINKER_DEBUG_H