aboutsummaryrefslogtreecommitdiffstats
path: root/trace.c
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2020-09-09 18:13:40 +0100
committerTomasz Kramkowski <tk@the-tk.com>2020-09-09 18:13:40 +0100
commit22ea2f04442442f9728825ad7888ca9c5250407e (patch)
tree84d91bb50599b538b3ead72337cbc39327e4a6b8 /trace.c
parent2e1ff80dab0cee0f197dccc9c5dd2f3b9afdb168 (diff)
downloadpack-22ea2f04442442f9728825ad7888ca9c5250407e.tar.gz
pack-22ea2f04442442f9728825ad7888ca9c5250407e.tar.xz
pack-22ea2f04442442f9728825ad7888ca9c5250407e.zip
Add tracing functions for debugging
Diffstat (limited to 'trace.c')
-rw-r--r--trace.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/trace.c b/trace.c
new file mode 100644
index 0000000..456d277
--- /dev/null
+++ b/trace.c
@@ -0,0 +1,41 @@
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "pack.h"
+#include "trace.h"
+
+enum pack_trace pack_trace = PACK_TRACE_OFF;
+
+void trace(enum pack_trace level, const char *fmt, va_list va)
+{
+ char *type;
+
+ if (level > pack_trace) return;
+
+ switch (level) {
+ case PACK_TRACE_CALL: type = "CALL"; break;
+ case PACK_TRACE_DEBUG: type = "DEBUG"; break;
+ }
+
+ fprintf(stderr, "PACK_TRACE_%s: ", type);
+ vfprintf(stderr, fmt, va);
+ fputc('\n', stderr);
+}
+
+void tr_call(const char *fmt, ...)
+{
+ va_list va;
+
+ va_start(va, fmt);
+ trace(PACK_TRACE_CALL, fmt, va);
+ va_end(va);
+}
+
+void tr_debug(const char *fmt, ...)
+{
+ va_list va;
+
+ va_start(va, fmt);
+ trace(PACK_TRACE_DEBUG, fmt, va);
+ va_end(va);
+}