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