summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openjdkjvmti/ti_phase.cc4
-rw-r--r--test/901-hello-ti-agent/basics.cc23
-rw-r--r--test/901-hello-ti-agent/expected.txt6
3 files changed, 20 insertions, 13 deletions
diff --git a/openjdkjvmti/ti_phase.cc b/openjdkjvmti/ti_phase.cc
index 8893c9b4aa..e8c1ca7335 100644
--- a/openjdkjvmti/ti_phase.cc
+++ b/openjdkjvmti/ti_phase.cc
@@ -63,18 +63,18 @@ struct PhaseUtil::PhaseCallback : public art::RuntimePhaseCallback {
break;
case RuntimePhase::kStart:
{
+ PhaseUtil::current_phase_ = JVMTI_PHASE_START;
art::ScopedThreadSuspension sts(art::Thread::Current(), art::ThreadState::kNative);
event_handler->DispatchEvent<ArtJvmtiEvent::kVmStart>(nullptr, GetJniEnv());
- PhaseUtil::current_phase_ = JVMTI_PHASE_START;
}
break;
case RuntimePhase::kInit:
{
ThreadUtil::CacheData();
+ PhaseUtil::current_phase_ = JVMTI_PHASE_LIVE;
ScopedLocalRef<jthread> thread(GetJniEnv(), GetCurrentJThread());
art::ScopedThreadSuspension sts(art::Thread::Current(), art::ThreadState::kNative);
event_handler->DispatchEvent<ArtJvmtiEvent::kVmInit>(nullptr, GetJniEnv(), thread.get());
- PhaseUtil::current_phase_ = JVMTI_PHASE_LIVE;
}
break;
case RuntimePhase::kDeath:
diff --git a/test/901-hello-ti-agent/basics.cc b/test/901-hello-ti-agent/basics.cc
index 2edd91eb66..472f2b768e 100644
--- a/test/901-hello-ti-agent/basics.cc
+++ b/test/901-hello-ti-agent/basics.cc
@@ -38,20 +38,27 @@ static void EnableEvent(jvmtiEnv* env, jvmtiEvent evt) {
}
}
-static void JNICALL VMStartCallback(jvmtiEnv *jenv ATTRIBUTE_UNUSED,
- JNIEnv* jni_env ATTRIBUTE_UNUSED) {
- printf("VMStart\n");
+static jvmtiPhase getPhase(jvmtiEnv* jenv) {
+ jvmtiPhase out = static_cast<jvmtiPhase>(-1);
+ jenv->GetPhase(&out);
+ return out;
}
-static void JNICALL VMInitCallback(jvmtiEnv *jvmti_env ATTRIBUTE_UNUSED,
+static void JNICALL VMStartCallback(jvmtiEnv *jenv, JNIEnv* jni_env ATTRIBUTE_UNUSED) {
+ printf("VMStart (phase %d)\n", getPhase(jenv));
+ fsync(1);
+}
+
+static void JNICALL VMInitCallback(jvmtiEnv *jvmti_env,
JNIEnv* jni_env ATTRIBUTE_UNUSED,
jthread thread ATTRIBUTE_UNUSED) {
- printf("VMInit\n");
+ printf("VMInit (phase %d)\n", getPhase(jvmti_env));
+ fsync(1);
}
-static void JNICALL VMDeatchCallback(jvmtiEnv *jenv ATTRIBUTE_UNUSED,
- JNIEnv* jni_env ATTRIBUTE_UNUSED) {
- printf("VMDeath\n");
+static void JNICALL VMDeatchCallback(jvmtiEnv *jenv, JNIEnv* jni_env ATTRIBUTE_UNUSED) {
+ printf("VMDeath (phase %d)\n", getPhase(jenv));
+ fsync(1);
}
diff --git a/test/901-hello-ti-agent/expected.txt b/test/901-hello-ti-agent/expected.txt
index 4177ffc4dc..73e389c8a1 100644
--- a/test/901-hello-ti-agent/expected.txt
+++ b/test/901-hello-ti-agent/expected.txt
@@ -1,6 +1,6 @@
Loaded Agent for test 901-hello-ti-agent
-VMStart
-VMInit
+VMStart (phase 6)
+VMInit (phase 4)
Hello, world!
Agent in live phase.
Received expected error for unattached JVMTI calls
@@ -73,4 +73,4 @@ JVMTI_ERROR_ILLEGAL_ARGUMENT
115 = JVMTI_ERROR_UNATTACHED_THREAD
116 = JVMTI_ERROR_INVALID_ENVIRONMENT
1 times JVMTI_ERROR_ILLEGAL_ARGUMENT
-VMDeath
+VMDeath (phase 4)