g_assert (tls);
+ tls->terminated = FALSE;
+
/* Have to save/restore the restore_ctx as we can be called recursively during invokes etc. */
memcpy (&orig_restore_state, &tls->restore_state, sizeof (MonoThreadUnwindState));
mono_thread_state_init_from_monoctx (&tls->restore_state, ctx);
tls = (DebuggerTlsData *)mono_native_tls_get_value (debugger_tls_id);
g_assert (tls);
+
+ //if a thread was suspended and doesn't have any managed stack, it was considered as terminated,
+ //but it wasn't really terminated because it can execute managed code again, and stop in a breakpoint so here we set terminated as FALSE
+ tls->terminated = FALSE;
+
memcpy (&orig_restore_state, &tls->restore_state, sizeof (MonoThreadUnwindState));
mono_thread_state_init_from_monoctx (&tls->restore_state, ctx);
memcpy (&tls->handler_ctx, ctx, sizeof (MonoContext));