2008-08-29 Geoff Norton <gnorton@novell.com>
[mono.git] / mono / mini / debug-debugger.h
index f2ec5772797b502892526e8c90207be0ef5b7708..5b30c73a650179b42ac2167e855ae56bb84371b9 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <mono/metadata/class-internals.h>
 #include <mono/metadata/mono-debug-debugger.h>
+#include <libgc/include/libgc-mono-debugger.h>
 #include "debug-mini.h"
 
 typedef struct _MonoDebuggerInfo               MonoDebuggerInfo;
@@ -29,7 +30,9 @@ extern guint8 *mono_trampoline_code [];
  */
 struct _MonoDebuggerInfo {
        guint64 magic;
-       guint32 version;
+       guint32 major_version;
+       guint32 minor_version;
+       guint32 dummy;
        guint32 total_size;
        guint32 symbol_table_size;
        guint32 mono_trampoline_num;
@@ -45,10 +48,7 @@ struct _MonoDebuggerInfo {
        MonoInvokeFunc runtime_invoke;
        guint64 (*class_get_static_field_data) (guint64 klass);
        guint64 (*run_finally) (guint64 argument1, guint64 argument2);
-       void (*attach) (void);
-       void (*detach) (void);
        void (*initialize) (void);
-       void * (*get_lmf_addr) (void);
 
        guint64 (*create_string) (G_GNUC_UNUSED guint64 dummy1, G_GNUC_UNUSED guint64 dummy2,
                                  G_GNUC_UNUSED guint64 dummy3, const gchar *string_argument);
@@ -75,6 +75,16 @@ struct _MonoDebuggerInfo {
 
        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;
 };
 
 struct _MonoDebuggerMetadataInfo {