13#include "DebugServer2/Base.h"
14#include "DebugServer2/Utils/CompilerSupport.h"
34LogLevel GetLogLevel();
35void SetLogLevel(LogLevel level);
36void SetLogColorsEnabled(
bool enabled);
37std::string
const &GetLogOutputFilename();
38void SetLogOutputFilename(std::string
const &filename);
39void SetLogOutputStream(FILE *stream);
41void Log(
int level,
char const *classname,
char const *funcname,
42 char const *format, ...) DS2_ATTRIBUTE_PRINTF(4, 5);
46#if defined(BITSIZE_32)
47#define PRI_PTR "#010" PRIxPTR
48#elif defined(BITSIZE_64)
49#define PRI_PTR "#018" PRIxPTR
50#elif defined(BITSIZE_128)
51#define PRI_PTR "#034" PRIxPTR
54#define PRI_PTR_CAST(VAL) ((uintptr_t)(VAL))
56#if defined(COMPILER_MSVC)
57#define FUNCTION_NAME __FUNCTION__
58#elif defined(COMPILER_CLANG) || defined(COMPILER_GCC)
59#define FUNCTION_NAME __PRETTY_FUNCTION__
61#error "Compiler not supported."
64#define DS2LOG(LVL, ...) \
65 ds2::Log(ds2::kLogLevel##LVL, nullptr, FUNCTION_NAME, __VA_ARGS__)
68#define DS2ASSERT(COND) \
71 DS2LOG(Fatal, "assertion `%s' failed at %s:%d", #COND, __FILE__, \
77#define DS2ASSERT(COND) \
84#if defined(COMPILER_CLANG) || defined(COMPILER_GCC)
85#define DS2BUG(MESSAGE, ...) \
87 DS2LOG(Fatal, "bug at %s:%d: " MESSAGE, __FILE__, __LINE__, \
91#elif defined(COMPILER_MSVC)
92#define DS2BUG(MESSAGE, ...) \
94 DS2LOG(Fatal, "bug at %s:%d: " MESSAGE, __FILE__, __LINE__, __VA_ARGS__); \
98#error "Compiler not supported."