#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;
*/
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;
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);
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 {