Improve kernel logging
Current function name is automatically prepended to all log entries. Helper macros added to log local variables.
This commit is contained in:
+23
-1
@@ -8,7 +8,7 @@ extern stream_t *kernel_log;
|
||||
|
||||
#define LOG(fmt, ...) \
|
||||
do { \
|
||||
uint64_t _size = string_length(fmt) * 2; \
|
||||
uint64_t _size = string_length(fmt) * 10; \
|
||||
char *_string = memory_allocate(_size); \
|
||||
_size = string_format(fmt, _size, _string, ##__VA_ARGS__); \
|
||||
kernel_log->write(kernel_log, _string, _size); \
|
||||
@@ -17,4 +17,26 @@ extern stream_t *kernel_log;
|
||||
|
||||
#define TRACE(fmt, ...)
|
||||
|
||||
#define LOG_LN(fmt, ...) \
|
||||
do { \
|
||||
uint64_t _size = string_length(fmt) * 10; \
|
||||
char *_string = memory_allocate(_size); \
|
||||
_size = string_format(fmt, _size, _string, ##__VA_ARGS__); \
|
||||
kernel_log->write(kernel_log, __func__, string_length(__func__)); \
|
||||
kernel_log->write(kernel_log, ": ", 2); \
|
||||
kernel_log->write(kernel_log, _string, _size); \
|
||||
kernel_log->write(kernel_log, "\n", 1); \
|
||||
memory_free(_string); \
|
||||
} while (0)
|
||||
|
||||
#define LOG_VAL(v) LOG_LN(#v "=%x")
|
||||
|
||||
#define LOG_VAL_F(v, f) LOG_LN(#v "=" f)
|
||||
|
||||
#define TRACE_LN(fmt, ...)
|
||||
|
||||
#define TRACE_VAL(v) TRACE_LN(#v "=%lx")
|
||||
|
||||
#define TRACE_VAL_F(v, f) TRACE_LN(#v "=" f)
|
||||
|
||||
void log_init(stream_t *log);
|
||||
|
||||
Reference in New Issue
Block a user