X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fdebugger-agent.c;h=ed3bee869a155630c8b1f6256d273db39a8487ff;hb=376163970715b99772bd34a317ec33b96f27cdbd;hp=9b569ffc9c72fa8ca23ff029f10199efeb9745cd;hpb=d817c0a1297ef818aea77250729fe9721e86c6e8;p=mono.git diff --git a/mono/mini/debugger-agent.c b/mono/mini/debugger-agent.c index 9b569ffc9c7..ed3bee869a1 100644 --- a/mono/mini/debugger-agent.c +++ b/mono/mini/debugger-agent.c @@ -727,7 +727,7 @@ static void transport_connect (const char *address); static gboolean transport_handshake (void); static void register_transport (DebuggerTransport *trans); -static guint32 WINAPI debugger_thread (void *arg); +static gsize WINAPI debugger_thread (void *arg); static void runtime_initialized (MonoProfiler *prof); @@ -1629,7 +1629,7 @@ start_debugger_thread (void) { MonoThreadParm tp; - tp.priority = 0; + tp.priority = MONO_THREAD_PRIORITY_NORMAL; tp.stack_size = 0; tp.creation_flags = 0; debugger_thread_handle = mono_threads_create_thread (debugger_thread, NULL, &tp, NULL); @@ -2790,8 +2790,6 @@ suspend_vm (void) static void resume_vm (void) { - int err; - g_assert (is_debugger_thread ()); mono_loader_lock (); @@ -2810,8 +2808,7 @@ resume_vm (void) } /* Signal this even when suspend_count > 0, since some threads might have resume_count > 0 */ - err = mono_coop_cond_broadcast (&suspend_cond); - g_assert (err == 0); + mono_coop_cond_broadcast (&suspend_cond); mono_coop_mutex_unlock (&suspend_mutex); //g_assert (err == 0); @@ -2830,7 +2827,6 @@ resume_vm (void) static void resume_thread (MonoInternalThread *thread) { - int err; DebuggerTlsData *tls; g_assert (is_debugger_thread ()); @@ -2852,8 +2848,7 @@ resume_thread (MonoInternalThread *thread) * Signal suspend_count without decreasing suspend_count, the threads will wake up * but only the one whose resume_count field is > 0 will be resumed. */ - err = mono_coop_cond_broadcast (&suspend_cond); - g_assert (err == 0); + mono_coop_cond_broadcast (&suspend_cond); mono_coop_mutex_unlock (&suspend_mutex); //g_assert (err == 0); @@ -2900,7 +2895,6 @@ static void suspend_current (void) { DebuggerTlsData *tls; - int err; g_assert (!is_debugger_thread ()); @@ -2928,8 +2922,7 @@ suspend_current (void) DEBUG_PRINTF (1, "[%p] Suspended.\n", (gpointer) (gsize) mono_native_thread_id_get ()); while (suspend_count - tls->resume_count > 0) { - err = mono_coop_cond_wait (&suspend_cond, &suspend_mutex); - g_assert (err == 0); + mono_coop_cond_wait (&suspend_cond, &suspend_mutex); } tls->suspended = FALSE; @@ -4335,6 +4328,7 @@ set_bp_in_method (MonoDomain *domain, MonoMethod *method, MonoSeqPointInfo *seq_ MonoError oerror; /* Might be AOTed code */ + mono_class_init (method->klass); code = mono_aot_get_method_checked (domain, method, &oerror); g_assert (code); mono_error_assert_ok (&oerror); @@ -9149,7 +9143,7 @@ frame_commands (int command, guint8 *p, guint8 *end, Buffer *buf) sig = mono_method_signature (frame->actual_method); - if (!mono_get_seq_points (frame->domain, frame->actual_method)) + if (!jit->has_var_info || !mono_get_seq_points (frame->domain, frame->actual_method)) /* * The method is probably from an aot image compiled without soft-debug, variables might be dead, etc. */ @@ -9467,10 +9461,10 @@ object_commands (int command, guint8 *p, guint8 *end, Buffer *buf) g_free (val); } else { guint8 *field_value = NULL; - void *field_storage = NULL; if (remote_obj) { #ifndef DISABLE_REMOTING + void *field_storage = NULL; field_value = mono_load_remote_field_checked(obj, obj_type, f, &field_storage, &error); if (!is_ok (&error)) { mono_error_cleanup (&error); /* FIXME report the error */ @@ -9815,7 +9809,7 @@ wait_for_attach (void) * This thread handles communication with the debugger client using a JDWP * like protocol. */ -static guint32 WINAPI +static gsize WINAPI debugger_thread (void *arg) { MonoError error;