1 #ifndef DEBUGGER_H 2 #define DEBUGGER_H 3 4 #include "stringmap.h" 5 #include "ml_runtime.h" 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 typedef struct interactive_debugger_t interactive_debugger_t; 12 13 ml_value_t *interactive_debugger( 14 void (*enter)(void *Data, interactive_debugger_t *Debugger, ml_source_t Source, int Index), 15 void (*exit)(void *Data, interactive_debugger_t *Debugger, ml_state_t *Caller, int Index), 16 void (*log)(void *Data, ml_value_t *Value), 17 void *Data, 18 ml_getter_t GlobalGet, 19 void *Globals 20 ) __attribute__ ((malloc)); 21 22 ml_value_t *interactive_debugger_get(interactive_debugger_t *Debugger, const char *Name); 23 ml_source_t interactive_debugger_switch(interactive_debugger_t *Debugger, int Index); 24 void interactive_debugger_resume(interactive_debugger_t *Debugger); 25 26 #ifdef __cplusplus 27 } 28 #endif 29 30 #endif 31