@@ -235,7 +235,15 @@ typedef intptr_t i_int;
236// Stack management
236// Stack management
239+#define TRACE idris_trace(vm, __FUNCTION__, __LINE__);
238−#define INITFRAME VAL* myoldbase
244+#define INITFRAME TRACE\
239#define REBASE vm->valstack_base = oldbase
247#define REBASE vm->valstack_base = oldbase
240#define RESERVE(x) if (vm->valstack_top+(x) > vm->stack_max) { stackOverflow(); } \
248#define RESERVE(x) if (vm->valstack_top+(x) > vm->stack_max) { stackOverflow(); } \
241 else { memset(vm->valstack_top, 0, (x)*sizeof(VAL)); }
249 else { memset(vm->valstack_top, 0, (x)*sizeof(VAL)); }
@@ -348,6 +356,7 @@ VM* idris_getSender(Msg* msg);
348int idris_getChannel(Msg* msg);
356int idris_getChannel(Msg* msg);
349void idris_freeMsg(Msg* msg);
357void idris_freeMsg(Msg* msg);
359+void idris_trace(VM* vm, const char* func, int line);
351void dumpVal(VAL r);
360void dumpVal(VAL r);
352void dumpStack(VM* vm);
361void dumpStack(VM* vm);