X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fmono-debug-debugger.h;h=e730110bcf15a22d44e002726896c89a2da073f5;hb=d91789760ed833b005ca4218433a00146aef6aa7;hp=93b7b829885ab822a1afb6762ddd6ec587f61aa5;hpb=9d61782c6e2392d7ceec2006b35be582598a70ae;p=mono.git diff --git a/mono/metadata/mono-debug-debugger.h b/mono/metadata/mono-debug-debugger.h index 93b7b829885..e730110bcf1 100644 --- a/mono/metadata/mono-debug-debugger.h +++ b/mono/metadata/mono-debug-debugger.h @@ -13,13 +13,9 @@ #include #include -typedef struct _MonoDebuggerBreakpointInfo MonoDebuggerBreakpointInfo; - typedef enum { MONO_DEBUGGER_EVENT_INITIALIZE_MANAGED_CODE = 1, - MONO_DEBUGGER_EVENT_ADD_MODULE, - MONO_DEBUGGER_EVENT_RELOAD_SYMTABS, - MONO_DEBUGGER_EVENT_METHOD_COMPILED, + MONO_DEBUGGER_EVENT_INITIALIZE_CORLIB, MONO_DEBUGGER_EVENT_JIT_BREAKPOINT, MONO_DEBUGGER_EVENT_INITIALIZE_THREAD_MANAGER, MONO_DEBUGGER_EVENT_ACQUIRE_GLOBAL_THREAD_LOCK, @@ -27,43 +23,38 @@ typedef enum { MONO_DEBUGGER_EVENT_WRAPPER_MAIN, MONO_DEBUGGER_EVENT_MAIN_EXITED, MONO_DEBUGGER_EVENT_UNHANDLED_EXCEPTION, - MONO_DEBUGGER_EVENT_THREAD_CREATED, - MONO_DEBUGGER_EVENT_THREAD_ABORT, - MONO_DEBUGGER_EVENT_THREAD_EXITED, MONO_DEBUGGER_EVENT_THROW_EXCEPTION, MONO_DEBUGGER_EVENT_HANDLE_EXCEPTION, + MONO_DEBUGGER_EVENT_THREAD_CREATED, + MONO_DEBUGGER_EVENT_THREAD_CLEANUP, + MONO_DEBUGGER_EVENT_GC_THREAD_CREATED, + MONO_DEBUGGER_EVENT_GC_THREAD_EXITED, MONO_DEBUGGER_EVENT_REACHED_MAIN, - MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE + MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE, + MONO_DEBUGGER_EVENT_LOAD_MODULE, + MONO_DEBUGGER_EVENT_UNLOAD_MODULE, + MONO_DEBUGGER_EVENT_DOMAIN_CREATE, + MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD, + MONO_DEBUGGER_EVENT_CLASS_INITIALIZED, + MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST, + + /* Extended per-thread notifications */ + MONO_DEBUGGER_EVENT_TRAMPOLINE = 256, } MonoDebuggerEvent; -struct _MonoDebuggerBreakpointInfo { - guint32 index; - MonoMethodDesc *desc; -}; +extern volatile gint32 _mono_debugger_interruption_request; extern void (*mono_debugger_event_handler) (MonoDebuggerEvent event, guint64 data, guint64 arg); -void mono_debugger_initialize (gboolean use_debugger); -void mono_debugger_cleanup (void); - -void mono_debugger_lock (void); -void mono_debugger_unlock (void); -void mono_debugger_event (MonoDebuggerEvent event, guint64 data, guint64 arg); - -void mono_debugger_add_symbol_file (MonoDebugHandle *handle); -void mono_debugger_start_add_type (MonoDebugHandle *symfile, MonoClass *klass); - -int mono_debugger_insert_breakpoint_full (MonoMethodDesc *desc); -int mono_debugger_remove_breakpoint (int breakpoint_id); -void mono_debugger_breakpoint_callback (MonoMethod *method, guint32 idx); - -guint8 *mono_debugger_create_notification_function(MonoCodeManager *codeman); +void mono_debugger_initialize (gboolean use_debugger); +void mono_debugger_cleanup (void); -MonoObject *mono_debugger_runtime_invoke (MonoMethod *method, void *obj, - void **params, MonoObject **exc); +void mono_debugger_lock (void); +void mono_debugger_unlock (void); +void mono_debugger_event (MonoDebuggerEvent event, guint64 data, guint64 arg); -gboolean mono_debugger_lookup_type (const gchar *type_name); -gint32 mono_debugger_lookup_assembly (const gchar *name); +MonoObject *mono_debugger_runtime_invoke (MonoMethod *method, void *obj, + void **params, MonoObject **exc); void * mono_vtable_get_static_field_data (MonoVTable *vt); @@ -71,4 +62,26 @@ mono_vtable_get_static_field_data (MonoVTable *vt); gchar * mono_debugger_check_runtime_version (const char *filename); +void +mono_debugger_class_initialized (MonoClass *klass); + +void +mono_debugger_check_interruption (void); + +MonoDebugMethodAddressList * +mono_debugger_insert_method_breakpoint (MonoMethod *method, guint64 idx); + +int +mono_debugger_remove_method_breakpoint (guint64 index); + +void +mono_debugger_check_breakpoints (MonoMethod *method, MonoDebugMethodAddress *debug_info); + +MonoClass * +mono_debugger_register_class_init_callback (MonoImage *image, const gchar *full_name, + guint32 token, guint32 index); + +void +mono_debugger_remove_class_init_callback (int index); + #endif /* __MONO_DEBUG_DEBUGGER_H__ */