aboutsummaryrefslogtreecommitdiff
path: root/src/debug.h
diff options
context:
space:
mode:
authorjcid <devnull@localhost>2007-10-07 00:36:34 +0200
committerjcid <devnull@localhost>2007-10-07 00:36:34 +0200
commit93715c46a99c96d6c866968312691ec9ab0f6a03 (patch)
tree573f19ec6aa740844f53a7c0eb7114f04096bf64 /src/debug.h
Initial revision
Diffstat (limited to 'src/debug.h')
-rw-r--r--src/debug.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/src/debug.h b/src/debug.h
new file mode 100644
index 00000000..ff8baf36
--- /dev/null
+++ b/src/debug.h
@@ -0,0 +1,149 @@
+#ifndef __DEBUG_H__
+#define __DEBUG_H__
+
+/*
+ * Simple debug messages. Add:
+ *
+ * #define DEBUG_LEVEL <n>
+ * #include "debug.h"
+ *
+ * to the file you are working on, or let DEBUG_LEVEL undefined to
+ * disable all messages. A higher level denotes a greater importance
+ * of the message.
+ */
+
+#include <unistd.h>
+#include <stdio.h>
+
+
+# ifdef DEBUG_LEVEL
+# define DEBUG_MSG(level, ...) \
+ D_STMT_START { \
+ if (DEBUG_LEVEL && (level) >= DEBUG_LEVEL) \
+ printf(__VA_ARGS__); \
+ } D_STMT_END
+# else
+# define DEBUG_MSG(level, ...)
+# endif /* DEBUG_LEVEL */
+
+
+
+/*
+ * Following is experimental, and will be explained soon.
+ */
+
+#ifdef DBG_RTFL
+
+
+#define DBG_MSG(obj, aspect, prio, msg) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:msg:%p:%s:%d:%s\n", \
+ __FILE__, __LINE__, getpid(), obj, aspect, prio, msg); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_MSGF(obj, aspect, prio, fmt, ...) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:msg:%p:%s:%d:" fmt "\n", \
+ __FILE__, __LINE__, getpid(), obj, aspect, prio, __VA_ARGS__); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_MSG_START(obj) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:msg-start:%p\n", \
+ __FILE__, __LINE__, getpid(), obj); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_MSG_END(obj) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:msg-end:%p\n", \
+ __FILE__, __LINE__, getpid(), obj); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_CREATE(obj, klass) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-create:%p:%s\n", \
+ __FILE__, __LINE__, getpid(), obj, klass); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_ASSOC(child, parent) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-assoc:%p:%p\n", \
+ __FILE__, __LINE__, getpid(), child, parent); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_SET_NUM(obj, var, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:%s:%d\n", \
+ __FILE__, __LINE__, getpid(), obj, var, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_SET_STR(obj, var, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:%s:%s\n", \
+ __FILE__, __LINE__, getpid(), obj, var, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_SET_PTR(obj, var, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:%s:%p\n", \
+ __FILE__, __LINE__, getpid(), obj, var, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_ARRSET_NUM(obj, var, ind, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:" var ":%d\n", \
+ __FILE__, __LINE__, getpid(), obj, ind, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_ARRSET_STR(obj, var, ind, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:" var ":%s\n", \
+ __FILE__, __LINE__, getpid(), obj, ind, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_ARRSET_PTR(obj, var, ind, val) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-set:%p:" var ":%p\n", \
+ __FILE__, __LINE__, getpid(), obj, ind, val); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#define DBG_OBJ_COLOR(klass, color) \
+ D_STMT_START { \
+ printf ("[rtfl]%s:%d:%d:obj-color:%s:%s\n", \
+ __FILE__, __LINE__, getpid(), klass, color); \
+ fflush (stdout); \
+ } D_STMT_END
+
+#else /* DBG_RTFL */
+
+#define DBG_MSG(obj, aspect, prio, msg)
+#define DBG_MSGF(obj, aspect, prio, fmt, ...)
+#define DBG_MSG_START(obj)
+#define DBG_MSG_END(obj)
+#define DBG_OBJ_CREATE(obj, klass)
+#define DBG_OBJ_ASSOC(child, parent)
+#define DBG_OBJ_SET_NUM(obj, var, val)
+#define DBG_OBJ_SET_STR(obj, var, val)
+#define DBG_OBJ_SET_PTR(obj, var, val)
+#define DBG_OBJ_ARRSET_NUM(obj, var, ind, val)
+#define DBG_OBJ_ARRSET_STR(obj, var, ind, val)
+#define DBG_OBJ_ARRSET_PTR(obj, var, ind, val)
+#define DBG_OBJ_COLOR(klass, color)
+
+#endif /* DBG_RTFL */
+
+#endif /* __DEBUG_H__ */
+
+