From 2d6ea6025f1e1a2932968d98fa6cfd7a7f052009 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Fri, 6 Jan 2017 15:10:24 -0500 Subject: [PATCH] [libmonodroid] Add an exported monodroid_clear_gdb_wait () function which can be called by a native debugger to break waits. This is better than setting the 'monodroid_gdb_wait' variable since the variable might not be accessible if libmondroid is compiled with optimizations on or its stripped. --- src/monodroid/jni/monodroid-glue.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/monodroid/jni/monodroid-glue.c b/src/monodroid/jni/monodroid-glue.c index f7fa3312c28..a7e6b49d0fb 100644 --- a/src/monodroid/jni/monodroid-glue.c +++ b/src/monodroid/jni/monodroid-glue.c @@ -66,6 +66,8 @@ #include "xamarin_getifaddrs.h" #endif +#define MONO_API_EXPORT __attribute__ ((visibility ("default"))) + static pthread_mutex_t process_cmd_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t process_cmd_cond = PTHREAD_COND_INITIALIZER; static int debugging_configured; @@ -88,9 +90,16 @@ static int attach_gdb; * clearing monodroid_gdb_wait. */ static int wait_for_gdb; -static int monodroid_gdb_wait = TRUE; +static volatile int monodroid_gdb_wait = TRUE; static int android_api_level = 0; +/* Can be called by a native debugger to break the wait on startup */ +MONO_API_EXPORT void +monodroid_clear_gdb_wait (void) +{ + monodroid_gdb_wait = FALSE; +} + #ifdef ANDROID64 #define SYSTEM_LIB_PATH "/system/lib64" #elif ANDROID