diff options
author | Fabien Sanglard <sanglardf@google.com> | 2022-12-21 20:26:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-12-21 20:26:02 +0000 |
commit | 398c731be2a9e2f24baa60293ab56e07f9141961 (patch) | |
tree | ff90a9083e7ecc2be74d5699f768a28a29cb3d25 | |
parent | 8b64f19b52039c76ac49eac44c835cc822d844e3 (diff) | |
parent | d6da5a269a490d810b8485b4a074d909c5660dd0 (diff) | |
download | oj-libjdwp-398c731be2a9e2f24baa60293ab56e07f9141961.tar.gz |
Merge "Remove 1.3s "Waiting for Debugger" delay" am: 7a949c3bcd am: d79072f109 am: d6da5a269aandroid-u-qpr1-beta-2.2-gplandroid-u-qpr1-beta-1-gplandroid-14.0.0_r45android-14.0.0_r44android-14.0.0_r43android-14.0.0_r42android-14.0.0_r41android-14.0.0_r40android-14.0.0_r39android-14.0.0_r38android-14.0.0_r27android-14.0.0_r26android-14.0.0_r25android-14.0.0_r24android-14.0.0_r23android-14.0.0_r22android-14.0.0_r21android-14.0.0_r20android-14.0.0_r19android-14.0.0_r18android-14.0.0_r17android-14.0.0_r16aml_rkp_341510000aml_rkp_341311000aml_rkp_341114000aml_rkp_341015010aml_rkp_341012000aml_hef_341717050aml_hef_341613000aml_hef_341512030aml_hef_341415040aml_hef_341311010aml_hef_341114030aml_cfg_341510000android14-qpr1-s2-releaseandroid14-qpr1-releaseandroid14-mainline-healthfitness-releaseandroid14-devandroid14-d2-s5-releaseandroid14-d2-s4-releaseandroid14-d2-s3-releaseandroid14-d2-s2-releaseandroid14-d2-s1-releaseandroid14-d2-release
Original change: https://android-review.googlesource.com/c/platform/external/oj-libjdwp/+/2305596
Change-Id: I897feb296882ccd61fafb7628c66705f36e82a21
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/share/back/vmDebug.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/share/back/vmDebug.c b/src/share/back/vmDebug.c index 4b51ee295..010cb8a3b 100644 --- a/src/share/back/vmDebug.c +++ b/src/share/back/vmDebug.c @@ -31,6 +31,8 @@ #include "debugLoop.h" #include "transport.h" #include "util.h" +#include "eventHelper.h" +#include "threadControl.h" static _Atomic(jlong) lastDebuggerActivity = ATOMIC_VAR_INIT(0LL); static _Atomic(jboolean) hasSeenDebuggerActivity = ATOMIC_VAR_INIT(JNI_FALSE); @@ -70,6 +72,14 @@ VMDebug_isDebuggerConnected(JNIEnv* env, jclass klass) return isDebuggerConnected(); } +static void JNICALL +VMDebug_suspendAllAndSendVmStart(JNIEnv* env, jclass klass) +{ + jthread currentThread; + JVMTI_FUNC_PTR(gdata->jvmti, GetCurrentThread)(gdata->jvmti, ¤tThread); + eventHelper_reportVMInit(getEnv(), 0, currentThread, JDWP_SUSPEND_POLICY(ALL)); +} + static jboolean JNICALL VMDebug_isDebuggingEnabled(JNIEnv* env, jclass klass) { @@ -115,9 +125,9 @@ vmDebug_initalize(JNIEnv* env) goto finish; } - JNINativeMethod methods[3]; + JNINativeMethod methods[4]; - // Take over the implementation of these three functions. + // Take over the implementation of these functions. methods[0].name = "lastDebuggerActivity"; methods[0].signature = "()J"; methods[0].fnPtr = (void*)VMDebug_lastDebuggerActivity; @@ -130,6 +140,10 @@ vmDebug_initalize(JNIEnv* env) methods[2].signature = "()Z"; methods[2].fnPtr = (void*)VMDebug_isDebuggerConnected; + methods[3].name = "suspendAllAndSendVmStart"; + methods[3].signature = "()V"; + methods[3].fnPtr = (void*)VMDebug_suspendAllAndSendVmStart; + jint res = JNI_FUNC_PTR(env,RegisterNatives)(env, vmdebug_class, methods, |