2010-02-04 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / debug-mini.h
index e916b0249c77d9eb07ede0229abade6afe8e1c32..698656ecab03bd992f7a60d902fcaab9ad8ab1b8 100644 (file)
@@ -4,11 +4,47 @@
 #include <mono/metadata/class-internals.h>
 #include <mono/metadata/mono-debug-debugger.h>
 
-MonoDebugMethodAddressList *
-mono_debugger_insert_method_breakpoint (MonoMethod *method, guint64 idx);
+#include "mini.h"
 
-int
-mono_debugger_remove_method_breakpoint (guint64 index);
+typedef struct _MonoDebuggerThreadInfo MonoDebuggerThreadInfo;
+extern MonoDebuggerThreadInfo *mono_debugger_thread_table;
+
+void
+mono_debugger_thread_created (gsize tid, MonoThread *thread, MonoJitTlsData *jit_tls, gpointer func);
+
+void
+mono_debugger_thread_cleanup (MonoJitTlsData *jit_tls);
+
+void
+mono_debugger_extended_notification (MonoDebuggerEvent event, guint64 data, guint64 arg);
+
+void
+mono_debugger_trampoline_compiled (const guint8 *trampoline, MonoMethod *method, const guint8 *code);
+
+void
+mono_debugger_call_exception_handler (gpointer addr, gpointer stack, MonoObject *exc);
+
+gboolean
+mono_debugger_handle_exception (MonoContext *ctx, MonoObject *obj);
+
+MonoObject *
+mono_debugger_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc);
+
+/*
+ * Internal exception API.
+ */
+
+typedef enum {
+       MONO_DEBUGGER_EXCEPTION_ACTION_NONE             = 0,
+       MONO_DEBUGGER_EXCEPTION_ACTION_STOP             = 1,
+       MONO_DEBUGGER_EXCEPTION_ACTION_STOP_UNHANDLED   = 2
+} MonoDebuggerExceptionAction;
+
+MonoDebuggerExceptionAction
+_mono_debugger_throw_exception (gpointer addr, gpointer stack, MonoObject *exc);
+
+gboolean
+_mono_debugger_unhandled_exception (gpointer addr, gpointer stack, MonoObject *exc);
 
 /*
  * This is the old breakpoint interface.