mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-08-09 20:24:14 +00:00
[host/common] d12: add debug tracing
This commit is contained in:
@@ -36,6 +36,7 @@ enum DebugLevel
|
||||
DEBUG_LEVEL_INFO,
|
||||
DEBUG_LEVEL_WARN,
|
||||
DEBUG_LEVEL_ERROR,
|
||||
DEBUG_LEVEL_TRACE,
|
||||
DEBUG_LEVEL_FIXME,
|
||||
DEBUG_LEVEL_FATAL
|
||||
};
|
||||
@@ -43,6 +44,7 @@ enum DebugLevel
|
||||
extern const char ** debug_lookup;
|
||||
|
||||
void debug_init(void);
|
||||
void debug_enableTracing(void);
|
||||
|
||||
// platform specific debug initialization
|
||||
void platform_debugInit(void);
|
||||
@@ -81,6 +83,9 @@ void debug_warn(const char * file, unsigned int line, const char * function,
|
||||
void debug_error(const char * file, unsigned int line, const char * function,
|
||||
const char * format, ...) __attribute__((format (printf, 4, 5)));
|
||||
|
||||
void debug_trace(const char * file, unsigned int line, const char * function,
|
||||
const char * format, ...) __attribute__((format (printf, 4, 5)));
|
||||
|
||||
#define STRIPPATH(s) ( \
|
||||
sizeof(s) > 2 && (s)[sizeof(s)- 3] == DIRECTORY_SEPARATOR ? (s) + sizeof(s) - 2 : \
|
||||
sizeof(s) > 3 && (s)[sizeof(s)- 4] == DIRECTORY_SEPARATOR ? (s) + sizeof(s) - 3 : \
|
||||
@@ -112,6 +117,7 @@ void debug_error(const char * file, unsigned int line, const char * function,
|
||||
#define DEBUG_INFO(fmt, ...) DEBUG_PRINT(DEBUG_LEVEL_INFO, fmt, ##__VA_ARGS__)
|
||||
#define DEBUG_WARN(fmt, ...) DEBUG_PRINT(DEBUG_LEVEL_WARN, fmt, ##__VA_ARGS__)
|
||||
#define DEBUG_ERROR(fmt, ...) DEBUG_PRINT(DEBUG_LEVEL_ERROR, fmt, ##__VA_ARGS__)
|
||||
#define DEBUG_TRACE(fmt, ...) DEBUG_PRINT(DEBUG_LEVEL_TRACE, fmt, ##__VA_ARGS__)
|
||||
#define DEBUG_FIXME(fmt, ...) DEBUG_PRINT(DEBUG_LEVEL_FIXME, fmt, ##__VA_ARGS__)
|
||||
#define DEBUG_FATAL(fmt, ...) do { \
|
||||
DEBUG_BREAK(); \
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <string.h>
|
||||
|
||||
static uint64_t startTime;
|
||||
static bool traceEnabled = false;
|
||||
|
||||
void debug_init(void)
|
||||
{
|
||||
@@ -32,9 +33,17 @@ void debug_init(void)
|
||||
platform_debugInit();
|
||||
}
|
||||
|
||||
void debug_enableTracing(void)
|
||||
{
|
||||
traceEnabled = true;
|
||||
}
|
||||
|
||||
inline static void debug_levelVA(enum DebugLevel level, const char * file,
|
||||
unsigned int line, const char * function, const char * format, va_list va)
|
||||
{
|
||||
if (level == DEBUG_LEVEL_TRACE && !traceEnabled)
|
||||
return;
|
||||
|
||||
const char * f = strrchr(file, DIRECTORY_SEPARATOR);
|
||||
if (!f)
|
||||
f = file;
|
||||
@@ -94,3 +103,12 @@ void debug_error(const char * file, unsigned int line, const char * function,
|
||||
debug_levelVA(DEBUG_LEVEL_ERROR, file, line, function, format, va);
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
void debug_trace(const char * file, unsigned int line, const char * function,
|
||||
const char * format, ...)
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
debug_levelVA(DEBUG_LEVEL_INFO, file, line, function, format, va);
|
||||
va_end(va);
|
||||
}
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#define COLOR_RED "\033[0;31m"
|
||||
#define COLOR_CYAN "\033[0;36m"
|
||||
#define COLOR_WHITE "\033[0;37m"
|
||||
#define COLOR_GREY "\033[0;90m"
|
||||
|
||||
const char ** debug_lookup = NULL;
|
||||
|
||||
@@ -38,6 +39,7 @@ void platform_debugInit(void)
|
||||
COLOR_RESET "[I] ", // DEBUG_LEVEL_INFO
|
||||
COLOR_YELLOW "[W] ", // DEBUG_LEVEL_WARN
|
||||
COLOR_RED "[E] ", // DEBUG_LEVEL_ERROR
|
||||
COLOR_GREY "[T] ", // DEBUG_LEVEL_TRACE
|
||||
COLOR_CYAN "[F] ", // DEBUG_LEVEL_FIXME
|
||||
COLOR_WHITE "[!] " // DEBUG_LEVEL_FATAL
|
||||
};
|
||||
@@ -48,6 +50,7 @@ void platform_debugInit(void)
|
||||
"[I] ", // DEBUG_LEVEL_INFO
|
||||
"[W] ", // DEBUG_LEVEL_WARN
|
||||
"[E] ", // DEBUG_LEVEL_ERROR
|
||||
"[T] ", // DEBUG_LEVEL_TRACE
|
||||
"[F] ", // DEBUG_LEVEL_FIXME
|
||||
"[!] " // DEBUG_LEVEL_FATAL
|
||||
};
|
||||
|
@@ -30,6 +30,7 @@ void platform_debugInit(void)
|
||||
"[I] ", // DEBUG_LEVEL_INFO
|
||||
"[W] ", // DEBUG_LEVEL_WARN
|
||||
"[E] ", // DEBUG_LEVEL_ERROR
|
||||
"[T] ", // DEBUG_LEVEL_TRACE
|
||||
"[F] ", // DEBUG_LEVEL_FIXME
|
||||
"[!] " // DEBUG_LEVEL_FATAL
|
||||
};
|
||||
|
Reference in New Issue
Block a user