3313542bc7d5378aa96a1ae9986966420fdb4053
[mono.git] / mono / metadata / mono-debug-debugger.h
1 #ifndef __MONO_DEBUG_DEBUGGER_H__
2 #define __MONO_DEBUG_DEBUGGER_H__
3
4 #include <glib.h>
5 #include <mono/metadata/debug-helpers.h>
6 #include <mono/metadata/debug-mono-symfile.h>
7
8 typedef struct _MonoDebuggerBreakpointInfo      MonoDebuggerBreakpointInfo;
9
10 typedef enum {
11         MONO_DEBUGGER_EVENT_TYPE_ADDED,
12         MONO_DEBUGGER_EVENT_METHOD_ADDED,
13         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE
14 } MonoDebuggerEvent;
15
16 struct _MonoDebuggerBreakpointInfo {
17         guint32 index;
18         gboolean use_trampoline;
19         MonoMethodDesc *desc;
20 };
21
22 extern void (*mono_debugger_event_handler) (MonoDebuggerEvent event, gpointer data, gpointer data2);
23
24 void           mono_debugger_event                  (MonoDebuggerEvent event, gpointer data, gpointer data2);
25 int            mono_debugger_insert_breakpoint_full (MonoMethodDesc *desc, gboolean use_trampoline);
26 int            mono_debugger_remove_breakpoint      (int breakpoint_id);
27 int            mono_debugger_insert_breakpoint      (const gchar *method_name, gboolean include_namespace);
28 int            mono_debugger_method_has_breakpoint  (MonoMethod* method, gboolean use_trampoline);
29 void           mono_debugger_trampoline_breakpoint_callback (void);
30
31 gpointer       mono_debugger_create_notification_function (gpointer *notification_address);
32
33 #endif /* __MONO_DEBUG_DEBUGGER_H__ */