+
+ guint64 (*create_string) (G_GNUC_UNUSED guint64 dummy1, G_GNUC_UNUSED guint64 dummy2,
+ G_GNUC_UNUSED guint64 dummy3, const gchar *string_argument);
+ gint64 (*lookup_class) (guint64 image_argument, G_GNUC_UNUSED guint64 dummy,
+ G_GNUC_UNUSED guint64 dummy2, gchar *full_name);
+
+ guint64 (*insert_method_breakpoint) (guint64 method_argument, guint64 index);
+ guint64 (*insert_source_breakpoint) (guint64 image_argument, guint64 token,
+ guint64 index, const gchar *class_name);
+ void (*remove_breakpoint) (guint64 index, G_GNUC_UNUSED guint64 dummy);
+
+ guint64 (*rgister_class_init_callback) (guint64 image_argument, guint64 token,
+ guint64 index, const gchar *class_name);
+ void (*remove_class_init_callback) (guint64 index, G_GNUC_UNUSED guint64 dummy);
+
+ MonoDebuggerThreadInfo **thread_table;
+
+ guint8 **executable_code_buffer;
+ MonoBreakpointInfo *mono_breakpoint_info;
+ gssize *mono_breakpoint_info_index;
+
+ guint32 executable_code_buffer_size;
+ guint32 breakpoint_array_size;
+
+ guint64 (*get_method_signature) (guint64 method_argument, G_GNUC_UNUSED guint64 dummy);
+ guint64 (*init_code_buffer) (void);
+
+ /*
+ * These are only needed when attaching.
+ */
+ GCThreadFunctions **thread_vtable_ptr;
+ GCThreadFunctions *debugger_thread_vtable;
+ void (**event_handler_ptr) (MonoDebuggerEvent event, guint64 data, guint64 arg);
+ void (*debugger_event_handler) (MonoDebuggerEvent event, guint64 data, guint64 arg);
+ gint32 *using_mono_debugger;
+ gint32 *interruption_request;
+
+ guint64 (*abort_runtime_invoke) (G_GNUC_UNUSED guint64 dummy1, G_GNUC_UNUSED guint64 dummy2);
+
+ guint32 *thread_abort_signal;