aboutsummaryrefslogtreecommitdiff
path: root/gfsm/gfsm/src/libgfsm/gfsmDebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'gfsm/gfsm/src/libgfsm/gfsmDebug.c')
-rw-r--r--gfsm/gfsm/src/libgfsm/gfsmDebug.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/gfsm/gfsm/src/libgfsm/gfsmDebug.c b/gfsm/gfsm/src/libgfsm/gfsmDebug.c
new file mode 100644
index 0000000..463e28a
--- /dev/null
+++ b/gfsm/gfsm/src/libgfsm/gfsmDebug.c
@@ -0,0 +1,35 @@
+#include <gfsmDebug.h>
+#include <gfsmMem.h>
+#include <gfsmConfig.h>
+
+#ifdef GFSM_DEBUG_ENABLED
+# define GFSM_MEM_DEBUG
+# define GFSM_ALLOC_DEBUG
+#endif /* GFSM_DEBUG_ENABLED */
+
+void gfsm_debug_init(void) {
+#if defined(GFSM_MEM_DEBUG)
+ g_mem_set_vtable(glib_mem_profiler_table);
+# if defined(GFSM_ALLOC_DEBUG)
+ gfsm_allocators_enable();
+# endif /* GFSM_ALLOC_DEBUG */
+#endif /* GFSM_MEM_DEBUG */
+ return;
+}
+
+void gfsm_debug_finish(void) {
+#if defined(GFSM_MEM_DEBUG)
+ g_blow_chunks();
+# if defined(GFSM_ALLOC_DEBUG)
+ gfsm_allocators_free();
+# endif /* GFSM_ALLOC_DEBUG */
+#endif /* GFSM_MEM_DEBUG */
+ return;
+}
+
+void gfsm_debug_print(void) {
+#if defined(GFSM_MEM_DEBUG)
+ g_mem_profile();
+#endif /* GFSM_MEM_DEBUG */
+ return;
+}