summaryrefslogtreecommitdiff
path: root/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'debug.h')
-rw-r--r--debug.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/debug.h b/debug.h
new file mode 100644
index 0000000..465319c
--- /dev/null
+++ b/debug.h
@@ -0,0 +1,99 @@
+#ifndef __RB_DEBUG_UTILS_H
+#define __RB_DEBUG_UTILS_H
+
+//what about kprintf?
+
+//config options
+#define PRINTF printf
+#define COLORIZE
+#define PRINT_LINENUM
+#define PRINT_FILENAME
+#define PRINT_DEBUG
+
+
+//use color
+#ifdef COLORIZE
+ #define D_COLOR "1;32m"
+ #define D_COLOR_S "\033[" D_COLOR
+ #define D_COLOR_E "\033[0m"
+ #define E_COLOR "1;31m"
+ #define E_COLOR_S "\033[" E_COLOR
+ #define E_COLOR_E "\033[0m"
+ #define W_COLOR "1;35m"
+ #define W_COLOR_S "\033[" W_COLOR
+ #define W_COLOR_E "\033[0m"
+ #define PE_COLOR "1;33m"
+ #define PE_COLOR_S "\033[" PE_COLOR
+ #define PE_COLOR_E "\033[0m"
+#else
+ #define D_COLOR
+ #define D_COLOR_S
+ #define D_COLOR_E
+ #define E_COLOR
+ #define E_COLOR_S
+ #define E_COLOR_E
+ #define W_COLOR
+ #define W_COLOR_S
+ #define W_COLOR_E
+ #define PE_COLOR
+ #define PE_COLOR_S
+ #define PE_COLOR_E
+#endif
+
+//print debug line
+#ifdef PRINT_LINENUM
+ #define PRINT_LINE_F "LINE:%d "
+ #define PRINT_LINE_D __LINE__
+#else
+ #define PRINT_LINE_F ""
+ #define PRINT_LINE_D ""
+#endif
+
+//print
+#ifdef PRINT_FILENAME
+ #define PRINT_FILE_F "FILE:%s "
+ #define PRINT_FILE_D __FILE__
+#else
+ #define PRINT_FILE_F ""
+ #define PRINT_FILE_D ""
+#endif
+
+//print debug string
+#ifdef PRINT_DEBUG
+ #define PRINT_DEBUG_F "Debug: "
+ #define PRINT_WARNING_F "WARN: "
+ #define PRINT_PERROR_F "PRME: "
+#else
+ #define PRINT_DEBUG_F ""
+ #define PRINT_WARNING_F ""
+ #define PRINT_PERROR_F ""
+#endif
+
+#define PRINT( format, args ... ) PRINTF( D_COLOR_S PRINT_DEBUG_F \
+ PRINT_FILE_F PRINT_LINE_F format D_COLOR_E, PRINT_FILE_D, \
+ PRINT_LINE_D, ##args);
+
+#define ERROR( format, args ... ) PRINTF( E_COLOR_S PRINT_DEBUG_F \
+ PRINT_FILE_F PRINT_LINE_F format E_COLOR_E, PRINT_FILE_D, \
+ PRINT_LINE_D, ##args);
+
+#define WARNING( format, args ... ) PRINTF( W_COLOR_S PRINT_WARNING_F \
+ PRINT_FILE_F PRINT_LINE_F format W_COLOR_E, PRINT_FILE_D, \
+ PRINT_LINE_D, ##args);
+
+#define PERROR( format, args ... ) PRINTF( PE_COLOR_S PRINT_WARNING_F \
+ PRINT_FILE_F PRINT_LINE_F format PE_COLOR_E, PRINT_FILE_D, \
+ PRINT_LINE_D, ##args);
+
+#define PNL() PRINT("\n");
+
+#define ENL() ERROR("\n");
+
+#define WRN() WARNING("\n");
+
+#define PERM() PERROR();
+
+/*ERROR LEVEL TYPES*/
+
+
+#endif