+#define DBG_MEM_STACK 0
+#if DBG_MEM_STACK
+char *mem_collect_stack;
+int64_t mem_collect_max_depth;
+
+static void
+ao_scheme_check_stack(void)
+{
+ char x;
+ int64_t depth;
+
+ depth = mem_collect_stack - &x;
+ if (depth > mem_collect_max_depth)
+ mem_collect_max_depth = depth;
+}
+
+static void
+_ao_scheme_reset_stack(char *x)
+{
+ mem_collect_stack = x;
+// mem_collect_max_depth = 0;
+}
+#define ao_scheme_declare_stack char x;
+#define ao_scheme_reset_stack() _ao_scheme_reset_stack(&x)
+#else
+#define ao_scheme_check_stack()
+#define ao_scheme_declare_stack
+#define ao_scheme_reset_stack()
+#endif
+