All pastes #38183 Raw Edit

Martin

public c v1 · immutable
#38183 ·published 2006-01-23 15:40 UTC
rendered paste body
Index: mono/metadata/ChangeLog===================================================================--- mono/metadata/ChangeLog	(revision 55944)+++ mono/metadata/ChangeLog	(working copy)@@ -1,5 +1,11 @@ 2006-01-23  Martin Baulig  <martin@ximian.com> +	* mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.++	* mono-debug-debugger.c (mono_debugger_io_layer): Removed.++2006-01-23  Martin Baulig  <martin@ximian.com>+ 	* mono-debug.h: Moved the prototypes of some functions which are 	used by the JIT here from mono-debug-debugger.h. Index: mono/metadata/mono-debug-debugger.c===================================================================--- mono/metadata/mono-debug-debugger.c	(revision 55944)+++ mono/metadata/mono-debug-debugger.c	(working copy)@@ -66,17 +66,6 @@ 	guint32 stop; } MonoDebuggerExceptionInfo; -#ifndef PLATFORM_WIN32--MonoDebuggerIOLayer mono_debugger_io_layer = {-	InitializeCriticalSection, DeleteCriticalSection, TryEnterCriticalSection,-	EnterCriticalSection, LeaveCriticalSection, WaitForSingleObjectEx, SignalObjectAndWait,-	WaitForMultipleObjectsEx, CreateSemaphore, ReleaseSemaphore, CreateThread,-	GetCurrentThreadId-};--#endif- static int initialized = 0;  voidIndex: mono/metadata/mono-debug-debugger.h===================================================================--- mono/metadata/mono-debug-debugger.h	(revision 55944)+++ mono/metadata/mono-debug-debugger.h	(working copy)@@ -50,38 +50,7 @@  */ extern guint8 *mono_trampoline_code []; -#if !defined(__WIN32__)- /*- * Functions we export to the debugger.- */-struct _MonoDebuggerIOLayer-{-	void (*InitializeCriticalSection) (WapiCriticalSection *section);-	void (*DeleteCriticalSection) (WapiCriticalSection *section);-	gboolean (*TryEnterCriticalSection) (WapiCriticalSection *section);-	void (*EnterCriticalSection) (WapiCriticalSection *section);-	void (*LeaveCriticalSection) (WapiCriticalSection *section);--	guint32 (*WaitForSingleObject) (gpointer handle, guint32 timeout, -					gboolean alertable);-	guint32 (*SignalObjectAndWait) (gpointer signal_handle, gpointer wait,-					guint32 timeout, gboolean alertable);-	guint32 (*WaitForMultipleObjects) (guint32 numobjects, gpointer *handles,-				      gboolean waitall, guint32 timeout, gboolean alertable);--	gpointer (*CreateSemaphore) (WapiSecurityAttributes *security,-				     gint32 initial, gint32 max,-				     const gunichar2 *name);-	gboolean (*ReleaseSemaphore) (gpointer handle, gint32 count, gint32 *prevcount);--	gpointer (*CreateThread) (WapiSecurityAttributes *security,-				  guint32 stacksize, WapiThreadStart start,-				  gpointer param, guint32 create, guint32 *tid);-	gsize (*GetCurrentThreadId) (void);-};--/*  * There's a global data symbol called `MONO_DEBUGGER__debugger_info' which  * contains pointers to global variables and functions which must be accessed  * by the debugger.@@ -125,10 +94,6 @@ 	guint32 main_tid; }; -extern MonoDebuggerIOLayer mono_debugger_io_layer;--#endif- extern void (*mono_debugger_event_handler) (MonoDebuggerEvent event, guint64 data, guint64 arg);  void            mono_debugger_initialize                  (gboolean use_debugger);Index: mono/mini/ChangeLog===================================================================--- mono/mini/ChangeLog	(revision 55939)+++ mono/mini/ChangeLog	(working copy)@@ -1,5 +1,15 @@ 2006-01-23  Martin Baulig  <martin@ximian.com> +	* Makefile.am: Only compile debug-debugger.c on supported platforms.++	* debug-debugger.c: Kill the IO_LAYER() hack and use the io-layer+	functions directly.++	* driver.c: debug-debugger.c is only available if+	`MONO_DEBUGGER_SUPPORTED' is defined.	++2006-01-23  Martin Baulig  <martin@ximian.com>+ 	* debug-debugger.c: Only enable this on platforms where the Mono 	Debugger is working (x86 and x86_64). Index: mono/mini/driver.c===================================================================--- mono/mini/driver.c	(revision 55938)+++ mono/mini/driver.c	(working copy)@@ -852,8 +852,13 @@ 		opt |= MONO_OPT_SHARED; 		enable_debugging = TRUE; +#ifdef MONO_DEBUGGER_SUPPORTED 		mono_debug_init (MONO_DEBUG_FORMAT_DEBUGGER); 		mono_debugger_init ();+#else+		g_print ("The Mono Debugger is not supported on this platform.\n");+		return 1;+#endif 	}  	mono_set_defaults (mini_verbose, opt);@@ -967,6 +972,7 @@ 		mini_cleanup (domain); 		return 0; 	} else if (action == DO_DEBUGGER) {+#ifdef MONO_DEBUGGER_SUPPORTED 		const char *error;  		error = mono_check_corlib_version ();@@ -979,6 +985,9 @@ 		mono_debugger_main (domain, assembly, argc, argv); 		mini_cleanup (domain); 		return 0;+#else+		return 1;+#endif 	} 	desc = mono_method_desc_new (mname, 0); 	if (!desc) {Index: mono/mini/debug-debugger.c===================================================================--- mono/mini/debug-debugger.c	(revision 55939)+++ mono/mini/debug-debugger.c	(working copy)@@ -1,4 +1,4 @@-#if defined(__i386__) || defined(__x86_64__)+#include <config.h> #include <mono/io-layer/io-layer.h> #include <mono/metadata/threads.h> #include <mono/metadata/assembly.h>@@ -11,8 +11,6 @@ #include <locale.h> #include <string.h> -#define IO_LAYER(func) (* mono_debugger_io_layer.func)- static GPtrArray *thread_array = NULL;  static gpointer main_started_cond;@@ -235,7 +233,7 @@ static void debugger_thread_manager_acquire_global_thread_lock (void) {-	int tid = IO_LAYER (GetCurrentThreadId) ();+	int tid = GetCurrentThreadId ();  	mono_debugger_notification_function ( 		MONO_DEBUGGER_EVENT_ACQUIRE_GLOBAL_THREAD_LOCK, 0, tid);@@ -244,7 +242,7 @@ static void debugger_thread_manager_release_global_thread_lock (void) {-	int tid = IO_LAYER (GetCurrentThreadId) ();+	int tid = GetCurrentThreadId ();  	mono_debugger_notification_function ( 		MONO_DEBUGGER_EVENT_RELEASE_GLOBAL_THREAD_LOCK, 0, tid);@@ -269,7 +267,7 @@ { 	int i, tid; -	tid = IO_LAYER (GetCurrentThreadId) ();+	tid = GetCurrentThreadId ();  	if (!thread_array) 		return;@@ -309,8 +307,8 @@ void mono_debugger_init (void) {-	main_started_cond = IO_LAYER (CreateSemaphore) (NULL, 0, 1, NULL);-	main_ready_cond = IO_LAYER (CreateSemaphore) (NULL, 0, 1, NULL);+	main_started_cond = CreateSemaphore (NULL, 0, 1, NULL);+	main_ready_cond = CreateSemaphore (NULL, 0, 1, NULL);  	mono_debugger_notification_function = mono_debugger_create_notification_function 		(&MONO_DEBUGGER__manager.notification_address);@@ -336,19 +334,19 @@ 	MainThreadArgs *main_args = (MainThreadArgs *) user_data; 	int retval; -	MONO_DEBUGGER__manager.main_tid = IO_LAYER (GetCurrentThreadId) ();+	MONO_DEBUGGER__manager.main_tid = GetCurrentThreadId (); 	MONO_DEBUGGER__manager.main_thread = g_new0 (MonoDebuggerThread, 1);-	MONO_DEBUGGER__manager.main_thread->tid = IO_LAYER (GetCurrentThreadId) ();+	MONO_DEBUGGER__manager.main_thread->tid = GetCurrentThreadId (); 	MONO_DEBUGGER__manager.main_thread->start_stack = &main_args;  	debugger_thread_manager_thread_created (MONO_DEBUGGER__manager.main_thread); -	IO_LAYER (ReleaseSemaphore) (main_started_cond, 1, NULL);+	ReleaseSemaphore (main_started_cond, 1, NULL);  	/* 	 * Wait until everything is ready. 	 */-	IO_LAYER (WaitForSingleObject) (main_ready_cond, INFINITE, FALSE);+	WaitForSingleObject (main_ready_cond, INFINITE);  	retval = mono_runtime_run_main (main_args->method, main_args->argc, main_args->argv, NULL); 	/*@@ -384,7 +382,7 @@ 	main_args.argv = argv + 2;  	mono_thread_create (domain, main_thread_handler, &main_args);-	IO_LAYER (WaitForSingleObject) (main_started_cond, INFINITE, FALSE);+	WaitForSingleObject (main_started_cond, INFINITE);  	/* 	 * Initialize the thread manager.@@ -405,7 +403,7 @@ 	/* 	 * Signal the main thread that it can execute the managed Main(). 	 */-	IO_LAYER (ReleaseSemaphore) (main_ready_cond, 1, NULL);+	ReleaseSemaphore (main_ready_cond, 1, NULL);  	/* 	 * This will never return.@@ -414,28 +412,3 @@  	return 0; }--#else /* defined(__x86__) || defined(__x86_64__) */-/*- * We're on an unsupported platform for the debugger.- */-#include "mini.h"--void-mono_debugger_init (void)-{-	/*-	 * This method is only called when we're running inside the Mono Debugger, but-	 * since the debugger doesn't work on this platform, this line should never be reached.-	 */-	g_error ("The Mono Debugger is not supported on this platform.");-}--int-mono_debugger_main (MonoDomain *domain, MonoAssembly *assembly, int argc, char **argv)-{-	g_assert_not_reached ();-	return 0;-}--#endifIndex: mono/mini/Makefile.am===================================================================--- mono/mini/Makefile.am	(revision 55938)+++ mono/mini/Makefile.am	(working copy)@@ -198,7 +198,6 @@ 	ssapre-mini-ops.h \ 	driver.c	\ 	debug-mini.c	\-	debug-debugger.c\ 	linear-scan.c	\ 	aot.c		\ 	graph.c		\@@ -222,13 +221,19 @@  test_sources2 = generics.2.cs +if MONO_DEBUGGER_SUPPORTED+mono_debugger_sources = debug-debugger.c+else+mono_debugger_sources =+endif+ regtests=basic.exe arrays.exe basic-float.exe basic-math.exe basic-long.exe objects.exe basic-calls.exe iltests.exe exceptions.exe bench.exe regtests2=generics.exe common_BURGSRC= $(srcdir)/inssel.brg $(srcdir)/inssel-float.brg  if X86 libmono_la_SOURCES = \-	$(common_sources) $(x86_sources)+	$(common_sources) $(x86_sources) $(mono_debugger_sources)  arch_BURGSRC= $(srcdir)/inssel-long32.brg $(srcdir)/inssel-x86.brg arch_built=cpu-pentium.h@@ -236,7 +241,7 @@  if AMD64 libmono_la_SOURCES = \-	$(common_sources) $(amd64_sources)+	$(common_sources) $(amd64_sources) $(mono_debugger_sources) arch_BURGSRC= $(srcdir)/inssel-long.brg $(srcdir)/inssel-amd64.brg arch_built=cpu-amd64.h endifIndex: configure.in===================================================================--- configure.in	(revision 55938)+++ configure.in	(working copy)@@ -1643,6 +1643,22 @@ 	fi fi +mono_debugger_supported=no+if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then+	case "$host" in+	*-*-*linux*)+		mono_debugger_supported=yes+		;;+	esac+fi++AC_MSG_CHECKING(if the Mono Debugger is supported on this platform)+if test "x$mono_debugger_supported" = "xyes"; then+	AC_DEFINE(MONO_DEBUGGER_SUPPORTED,1,[The Mono Debugger is supported on this platform])+fi+AC_MSG_RESULT($mono_debugger_supported)+AM_CONDITIONAL(MONO_DEBUGGER_SUPPORTED, test x$mono_debugger_supported = xyes)+ if test "x$with_tls" = "x__thread"; then 	AC_DEFINE(HAVE_KW_THREAD)    # Pass the information to libgcIndex: ChangeLog===================================================================--- ChangeLog	(revision 55938)+++ ChangeLog	(working copy)@@ -1,3 +1,9 @@+2006-01-23  Martin Baulig  <martin@ximian.com>++	* configure.in: Added configure check whether the Mono Debugger is+	supported on this platform; AC_DEFINE(MONO_DEBUGGER_SUPPORTED) and+	also added a `MONO_DEBUGGER_SUPPORTED' automake conditional.+ 2006-01-13  Raja R Harinath  <rharinath@novell.com>  	* data/net_2_0/machine.config: Fix a couple of typos in type names.