summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2017-04-07 09:00:04 -0700
committer Andreas Gampe <agampe@google.com> 2017-04-07 09:44:55 -0700
commit4665167ddc34008dfa78a2873685fe7a98772eab (patch)
tree9af21169db0e6de2496b2946861436a9ecaf72e3
parent2bbf16da51c6a61da8ccd3c8d4d8382f6bbc9623 (diff)
ART: More refactor for JVMTI run tests (1/3)
Put (most) tests into a new package and give them dedicated class names (Test9XY). NOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE DIRECTORY STRUCTURE AND FILE NAMES! Bug: 32072923 Test: None Change-Id: I291b0543f7782914e446a74f0d9037020c88e5b5
-rw-r--r--test/901-hello-ti-agent/basics.cc6
-rw-r--r--test/901-hello-ti-agent/src/Main.java8
-rw-r--r--test/902-hello-transformation/src/Main.java1
-rw-r--r--test/903-hello-tagging/src/Main.java22
-rw-r--r--test/903-hello-tagging/tagging.cc23
-rw-r--r--test/904-object-allocation/src/Main.java8
-rw-r--r--test/904-object-allocation/tracking.cc8
-rw-r--r--test/905-object-free/src/Main.java12
-rw-r--r--test/905-object-free/tracking_free.cc18
-rw-r--r--test/906-iterate-heap/iterate_heap.cc41
-rw-r--r--test/906-iterate-heap/src/Main.java17
-rw-r--r--test/907-get-loaded-classes/get_loaded_classes.cc2
-rw-r--r--test/907-get-loaded-classes/src/Main.java10
-rw-r--r--test/908-gc-start-finish/gc_callbacks.cc16
-rw-r--r--test/908-gc-start-finish/src/Main.java7
-rw-r--r--test/910-methods/expected.txt2
-rw-r--r--test/910-methods/methods.cc20
-rw-r--r--test/910-methods/src/Main.java7
-rw-r--r--test/911-get-stack-trace/expected.txt1089
-rw-r--r--test/911-get-stack-trace/src/AllTraces.java2
-rw-r--r--test/911-get-stack-trace/src/ControlData.java2
-rw-r--r--test/911-get-stack-trace/src/Frames.java2
-rw-r--r--test/911-get-stack-trace/src/Main.java13
-rw-r--r--test/911-get-stack-trace/src/OtherThread.java2
-rw-r--r--test/911-get-stack-trace/src/PrintThread.java2
-rw-r--r--test/911-get-stack-trace/src/Recurse.java2
-rw-r--r--test/911-get-stack-trace/src/SameThread.java2
-rw-r--r--test/911-get-stack-trace/src/ThreadListTraces.java2
-rw-r--r--test/911-get-stack-trace/stack_trace.cc18
-rw-r--r--test/912-classes/src/Main.java1
-rw-r--r--test/913-heaps/heaps.cc84
-rw-r--r--test/913-heaps/src/Main.java22
-rw-r--r--test/914-hello-obsolescence/src/Main.java1
-rw-r--r--test/915-obsolete-2/src/Main.java1
-rw-r--r--test/916-obsolete-jit/src/Main.java1
-rw-r--r--test/917-fields-transformation/src/Main.java1
-rw-r--r--test/918-fields/expected.txt8
-rw-r--r--test/918-fields/fields.cc8
-rw-r--r--test/918-fields/src/Main.java7
-rw-r--r--test/919-obsolete-fields/src/Main.java1
-rw-r--r--test/920-objects/objects.cc4
-rw-r--r--test/920-objects/src/Main.java9
-rw-r--r--test/921-hello-failure/src/Main.java2
-rw-r--r--test/922-properties/properties.cc6
-rw-r--r--test/922-properties/src/Main.java7
-rw-r--r--test/923-monitors/monitors.cc14
-rw-r--r--test/923-monitors/src/Main.java7
-rw-r--r--test/924-threads/src/Main.java7
-rw-r--r--test/924-threads/threads.cc14
-rw-r--r--test/925-threadgroups/src/Main.java7
-rw-r--r--test/925-threadgroups/threadgroups.cc6
-rw-r--r--test/926-multi-obsolescence/src/Main.java1
-rw-r--r--test/927-timers/src/Main.java7
-rw-r--r--test/927-timers/timers.cc6
-rw-r--r--test/928-jni-table/jni_table.cc2
-rw-r--r--test/928-jni-table/src/Main.java7
-rw-r--r--test/929-search/src/Main.java1
-rw-r--r--test/930-hello-retransform/src/Main.java1
-rw-r--r--test/931-agent-thread/agent_thread.cc2
-rw-r--r--test/931-agent-thread/src/Main.java7
-rw-r--r--test/932-transform-saves/src/Main.java1
-rw-r--r--test/933-misc-events/misc_events.cc2
-rw-r--r--test/933-misc-events/src/Main.java7
-rw-r--r--test/934-load-transform/src/Main.java1
-rw-r--r--test/935-non-retransformable/src/Main.java1
-rw-r--r--test/936-search-onload/src/Main.java1
-rw-r--r--test/937-hello-retransform-package/src/Main.java1
-rw-r--r--test/938-load-transform-bcp/src/Main.java1
-rw-r--r--test/939-hello-transformation-bcp/src/Main.java1
-rw-r--r--test/940-recursive-obsolete/src/Main.java1
-rw-r--r--test/941-recurive-obsolete-jit/src/Main.java1
-rw-r--r--test/942-private-recursive/src/Main.java1
-rw-r--r--test/943-private-recursive-jit/src/Main.java1
-rw-r--r--test/944-transform-classloaders/src/Main.java2
-rw-r--r--test/945-obsolete-native/src/Main.java1
-rw-r--r--test/946-obsolete-throw/expected.txt6
-rw-r--r--test/946-obsolete-throw/src/Main.java1
-rw-r--r--test/947-reflect-method/src/Main.java1
-rw-r--r--test/948-change-annotations/src/Main.java1
-rw-r--r--test/949-in-memory-transform/src/Main.java1
-rw-r--r--test/950-redefine-intrinsic/src/Main.java1
-rw-r--r--test/951-threaded-obsolete/src/Main.java1
-rw-r--r--test/980-redefine-object/src/Main.java1
-rw-r--r--test/981-dedup-original-dex/src/Main.java1
-rw-r--r--test/982-ok-no-retransform/src/Main.java1
-rw-r--r--test/983-source-transform-verify/src/Main.java1
-rw-r--r--test/984-obsolete-invoke/src/Main.java1
-rw-r--r--test/Android.bp1
-rw-r--r--test/ti-agent/agent_common.cc42
-rw-r--r--test/ti-agent/agent_startup.cc36
90 files changed, 973 insertions, 762 deletions
diff --git a/test/901-hello-ti-agent/basics.cc b/test/901-hello-ti-agent/basics.cc
index 20b227ab24..8695e0c371 100644
--- a/test/901-hello-ti-agent/basics.cc
+++ b/test/901-hello-ti-agent/basics.cc
@@ -145,14 +145,14 @@ jint OnLoad(JavaVM* vm,
return JNI_OK;
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setVerboseFlag(
+extern "C" JNIEXPORT void JNICALL Java_art_Test901_setVerboseFlag(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jint iflag, jboolean val) {
jvmtiVerboseFlag flag = static_cast<jvmtiVerboseFlag>(iflag);
jvmtiError result = jvmti_env->SetVerboseFlag(flag, val);
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_checkLivePhase(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test901_checkLivePhase(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jvmtiPhase current_phase;
jvmtiError phase_result = jvmti_env->GetPhase(&current_phase);
@@ -168,7 +168,7 @@ static void CallJvmtiFunction(jvmtiEnv* env, jclass klass, jvmtiError* err) {
*err = env->GetClassMethods(klass, &n, &methods);
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_checkUnattached(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test901_checkUnattached(
JNIEnv* env ATTRIBUTE_UNUSED, jclass Main_klass) {
jvmtiError res = JVMTI_ERROR_NONE;
std::thread t1(CallJvmtiFunction, jvmti_env, Main_klass, &res);
diff --git a/test/901-hello-ti-agent/src/Main.java b/test/901-hello-ti-agent/src/Main.java
index 556e05b5d0..26f7399c31 100644
--- a/test/901-hello-ti-agent/src/Main.java
+++ b/test/901-hello-ti-agent/src/Main.java
@@ -14,8 +14,12 @@
* limitations under the License.
*/
-public class Main {
- public static void main(String[] args) {
+package art;
+
+public class Test901 {
+ public static void run() {
+ Main.bindAgentJNIForClass(Test901.class);
+
System.out.println("Hello, world!");
if (checkLivePhase()) {
diff --git a/test/902-hello-transformation/src/Main.java b/test/902-hello-transformation/src/Main.java
index 471c82ba28..ed8a5007c8 100644
--- a/test/902-hello-transformation/src/Main.java
+++ b/test/902-hello-transformation/src/Main.java
@@ -49,6 +49,7 @@ public class Main {
"AgAAABMCAAAAIAAAAQAAAB4CAAAAEAAAAQAAACwCAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/903-hello-tagging/src/Main.java b/test/903-hello-tagging/src/Main.java
index 48896b236a..1691a947c5 100644
--- a/test/903-hello-tagging/src/Main.java
+++ b/test/903-hello-tagging/src/Main.java
@@ -14,12 +14,16 @@
* limitations under the License.
*/
+package art;
+
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) {
+public class Test903 {
+ public static void run() {
+ Main.bindAgentJNIForClass(Test903.class);
+
doTest();
testGetTaggedObjects();
testTags();
@@ -44,10 +48,10 @@ public class Main {
private static WeakReference<Object> test() {
Object o1 = new Object();
- setTag(o1, 1);
+ Main.setTag(o1, 1);
Object o2 = new Object();
- setTag(o2, 2);
+ Main.setTag(o2, 2);
checkTag(o1, 1);
checkTag(o2, 2);
@@ -61,8 +65,8 @@ public class Main {
Runtime.getRuntime().gc();
Runtime.getRuntime().gc();
- setTag(o1, 10);
- setTag(o2, 20);
+ Main.setTag(o1, 10);
+ Main.setTag(o2, 20);
checkTag(o1, 10);
checkTag(o2, 20);
@@ -71,7 +75,7 @@ public class Main {
}
private static void checkTag(Object o, long expectedTag) {
- long tag = getTag(o);
+ long tag = Main.getTag(o);
if (expectedTag != tag) {
throw new RuntimeException("Unexpected tag " + tag + ", expected " + expectedTag);
}
@@ -86,7 +90,7 @@ public class Main {
Integer o = new Integer(i);
l.add(o);
if (i % 10 != 0) {
- setTag(o, i % 10);
+ Main.setTag(o, i % 10);
}
}
@@ -169,8 +173,6 @@ public class Main {
}
}
- private static native void setTag(Object o, long tag);
- private static native long getTag(Object o);
private static native Object[] getTaggedObjects(long[] searchTags, boolean returnObjects,
boolean returnTags);
private static native long[] testTagsInDifferentEnvs(Object o, long baseTag, int n);
diff --git a/test/903-hello-tagging/tagging.cc b/test/903-hello-tagging/tagging.cc
index 701b0c3817..a2694e773b 100644
--- a/test/903-hello-tagging/tagging.cc
+++ b/test/903-hello-tagging/tagging.cc
@@ -33,25 +33,8 @@
namespace art {
namespace Test903HelloTagging {
-extern "C" JNIEXPORT void JNICALL Java_Main_setTag(JNIEnv* env, jclass, jobject obj, jlong tag) {
- jvmtiError ret = jvmti_env->SetTag(obj, tag);
- JvmtiErrorToException(env, jvmti_env, ret);
-}
-
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getTag(JNIEnv* env, jclass, jobject obj) {
- jlong tag = 0;
- jvmtiError ret = jvmti_env->GetTag(obj, &tag);
- if (JvmtiErrorToException(env, jvmti_env, ret)) {
- return 0;
- }
- return tag;
-}
-
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getTaggedObjects(JNIEnv* env,
- jclass,
- jlongArray searchTags,
- jboolean returnObjects,
- jboolean returnTags) {
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test903_getTaggedObjects(
+ JNIEnv* env, jclass, jlongArray searchTags, jboolean returnObjects, jboolean returnTags) {
ScopedLongArrayRO scoped_array(env);
if (searchTags != nullptr) {
scoped_array.reset(searchTags);
@@ -150,7 +133,7 @@ static jlong GetTag(jvmtiEnv* env, jobject obj) {
return tag;
}
-extern "C" JNIEXPORT jlongArray JNICALL Java_Main_testTagsInDifferentEnvs(
+extern "C" JNIEXPORT jlongArray JNICALL Java_art_Test903_testTagsInDifferentEnvs(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject obj, jlong base_tag, jint count) {
std::unique_ptr<jvmtiEnv*[]> envs = std::unique_ptr<jvmtiEnv*[]>(new jvmtiEnv*[count]);
envs[0] = jvmti_env;
diff --git a/test/904-object-allocation/src/Main.java b/test/904-object-allocation/src/Main.java
index df59179cc8..31e0c8c1ae 100644
--- a/test/904-object-allocation/src/Main.java
+++ b/test/904-object-allocation/src/Main.java
@@ -14,10 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test904 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test904.class);
+
// Use a list to ensure objects must be allocated.
ArrayList<Object> l = new ArrayList<>(100);
diff --git a/test/904-object-allocation/tracking.cc b/test/904-object-allocation/tracking.cc
index c829496975..8de350b06c 100644
--- a/test/904-object-allocation/tracking.cc
+++ b/test/904-object-allocation/tracking.cc
@@ -57,7 +57,7 @@ static void JNICALL ObjectAllocated(jvmtiEnv* ti_env ATTRIBUTE_UNUSED,
static_cast<size_t>(size));
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectAllocCallback(
+extern "C" JNIEXPORT void JNICALL Java_art_Test904_setupObjectAllocCallback(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jboolean enable) {
jvmtiEventCallbacks callbacks;
memset(&callbacks, 0, sizeof(jvmtiEventCallbacks));
@@ -67,10 +67,8 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectAllocCallback(
JvmtiErrorToException(env, jvmti_env, ret);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_enableAllocationTracking(JNIEnv* env,
- jclass,
- jthread thread,
- jboolean enable) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test904_enableAllocationTracking(
+ JNIEnv* env, jclass, jthread thread, jboolean enable) {
jvmtiError ret = jvmti_env->SetEventNotificationMode(
enable ? JVMTI_ENABLE : JVMTI_DISABLE,
JVMTI_EVENT_VM_OBJECT_ALLOC,
diff --git a/test/905-object-free/src/Main.java b/test/905-object-free/src/Main.java
index 0d576291cb..1ed7a0eb19 100644
--- a/test/905-object-free/src/Main.java
+++ b/test/905-object-free/src/Main.java
@@ -14,11 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test905 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test905.class);
doTest();
}
@@ -67,7 +70,7 @@ public class Main {
private static void stressAllocate(int i) {
Object obj = new Object();
- setTag(obj, i);
+ Main.setTag(obj, i);
setTag2(obj, i + 1);
}
@@ -92,7 +95,7 @@ public class Main {
private static void allocate(ArrayList<Object> l, long tag) {
Object obj = new Object();
l.add(obj);
- setTag(obj, tag);
+ Main.setTag(obj, tag);
}
private static void getAndPrintTags() {
@@ -103,7 +106,6 @@ public class Main {
private static native void setupObjectFreeCallback();
private static native void enableFreeTracking(boolean enable);
- private static native void setTag(Object o, long tag);
private static native long[] getCollectedTags(int index);
private static native void setTag2(Object o, long tag);
}
diff --git a/test/905-object-free/tracking_free.cc b/test/905-object-free/tracking_free.cc
index 59b429ca40..998194a611 100644
--- a/test/905-object-free/tracking_free.cc
+++ b/test/905-object-free/tracking_free.cc
@@ -55,7 +55,7 @@ static void setupObjectFreeCallback(JNIEnv* env, jvmtiEnv* jenv, jvmtiEventObjec
JvmtiErrorToException(env, jenv, ret);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectFreeCallback(
+extern "C" JNIEXPORT void JNICALL Java_art_Test905_setupObjectFreeCallback(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED) {
setupObjectFreeCallback(env, jvmti_env, ObjectFree1);
JavaVM* jvm = nullptr;
@@ -65,9 +65,8 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupObjectFreeCallback(
setupObjectFreeCallback(env, jvmti_env2, ObjectFree2);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_enableFreeTracking(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jboolean enable) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test905_enableFreeTracking(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jboolean enable) {
jvmtiError ret = jvmti_env->SetEventNotificationMode(
enable ? JVMTI_ENABLE : JVMTI_DISABLE,
JVMTI_EVENT_OBJECT_FREE,
@@ -82,9 +81,8 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableFreeTracking(JNIEnv* env,
JvmtiErrorToException(env, jvmti_env, ret);
}
-extern "C" JNIEXPORT jlongArray JNICALL Java_Main_getCollectedTags(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jint index) {
+extern "C" JNIEXPORT jlongArray JNICALL Java_art_Test905_getCollectedTags(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jint index) {
std::vector<jlong>& tags = (index == 0) ? collected_tags1 : collected_tags2;
jlongArray ret = env->NewLongArray(tags.size());
if (ret == nullptr) {
@@ -97,10 +95,8 @@ extern "C" JNIEXPORT jlongArray JNICALL Java_Main_getCollectedTags(JNIEnv* env,
return ret;
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setTag2(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jobject obj,
- jlong tag) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test905_setTag2(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject obj, jlong tag) {
jvmtiError ret = jvmti_env2->SetTag(obj, tag);
JvmtiErrorToException(env, jvmti_env, ret);
}
diff --git a/test/906-iterate-heap/iterate_heap.cc b/test/906-iterate-heap/iterate_heap.cc
index bb30074958..6534b4c3db 100644
--- a/test/906-iterate-heap/iterate_heap.cc
+++ b/test/906-iterate-heap/iterate_heap.cc
@@ -71,11 +71,12 @@ static bool Run(JNIEnv* env, jint heap_filter, jclass klass_filter, IterationCon
return true;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_iterateThroughHeapCount(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jint heap_filter,
- jclass klass_filter,
- jint stop_after) {
+extern "C" JNIEXPORT jint JNICALL Java_art_Test906_iterateThroughHeapCount(
+ JNIEnv* env,
+ jclass klass ATTRIBUTE_UNUSED,
+ jint heap_filter,
+ jclass klass_filter,
+ jint stop_after) {
class CountIterationConfig : public IterationConfig {
public:
CountIterationConfig(jint _counter, jint _stop_after)
@@ -108,15 +109,15 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_iterateThroughHeapCount(JNIEnv* env,
return config.counter;
}
-
-extern "C" JNIEXPORT jint JNICALL Java_Main_iterateThroughHeapData(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jint heap_filter,
- jclass klass_filter,
- jlongArray class_tags,
- jlongArray sizes,
- jlongArray tags,
- jintArray lengths) {
+extern "C" JNIEXPORT jint JNICALL Java_art_Test906_iterateThroughHeapData(
+ JNIEnv* env,
+ jclass klass ATTRIBUTE_UNUSED,
+ jint heap_filter,
+ jclass klass_filter,
+ jlongArray class_tags,
+ jlongArray sizes,
+ jlongArray tags,
+ jintArray lengths) {
class DataIterationConfig : public IterationConfig {
public:
jint Handle(jlong class_tag, jlong size, jlong* tag_ptr, jint length) OVERRIDE {
@@ -154,10 +155,8 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_iterateThroughHeapData(JNIEnv* env,
return static_cast<jint>(config.class_tags_.size());
}
-extern "C" JNIEXPORT void JNICALL Java_Main_iterateThroughHeapAdd(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jint heap_filter,
- jclass klass_filter) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test906_iterateThroughHeapAdd(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jint heap_filter, jclass klass_filter) {
class AddIterationConfig : public IterationConfig {
public:
AddIterationConfig() {}
@@ -178,7 +177,7 @@ extern "C" JNIEXPORT void JNICALL Java_Main_iterateThroughHeapAdd(JNIEnv* env,
Run(env, heap_filter, klass_filter, &config);
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_iterateThroughHeapString(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test906_iterateThroughHeapString(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jlong tag) {
struct FindStringCallbacks {
explicit FindStringCallbacks(jlong t) : tag_to_find(t) {}
@@ -234,7 +233,7 @@ extern "C" JNIEXPORT jstring JNICALL Java_Main_iterateThroughHeapString(
return env->NewStringUTF(fsc.data.c_str());
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_iterateThroughHeapPrimitiveArray(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test906_iterateThroughHeapPrimitiveArray(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jlong tag) {
struct FindArrayCallbacks {
explicit FindArrayCallbacks(jlong t) : tag_to_find(t) {}
@@ -345,7 +344,7 @@ static constexpr const char* GetPrimitiveTypeName(jvmtiPrimitiveType type) {
UNREACHABLE();
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_iterateThroughHeapPrimitiveFields(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test906_iterateThroughHeapPrimitiveFields(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jlong tag) {
struct FindFieldCallbacks {
explicit FindFieldCallbacks(jlong t) : tag_to_find(t) {}
diff --git a/test/906-iterate-heap/src/Main.java b/test/906-iterate-heap/src/Main.java
index 365ce0f214..feebf9c118 100644
--- a/test/906-iterate-heap/src/Main.java
+++ b/test/906-iterate-heap/src/Main.java
@@ -14,11 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.Collections;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test906 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test906.class);
doTest();
}
@@ -251,14 +254,18 @@ public class Main {
static int sI = 6;
}
- private static native void setTag(Object o, long tag);
- private static native long getTag(Object o);
-
private final static int HEAP_FILTER_OUT_TAGGED = 0x4;
private final static int HEAP_FILTER_OUT_UNTAGGED = 0x8;
private final static int HEAP_FILTER_OUT_CLASS_TAGGED = 0x10;
private final static int HEAP_FILTER_OUT_CLASS_UNTAGGED = 0x20;
+ private static void setTag(Object o, long tag) {
+ Main.setTag(o, tag);
+ }
+ private static long getTag(Object o) {
+ return Main.getTag(o);
+ }
+
private static native int iterateThroughHeapCount(int heapFilter,
Class<?> klassFilter, int stopAfter);
private static native int iterateThroughHeapData(int heapFilter,
diff --git a/test/907-get-loaded-classes/get_loaded_classes.cc b/test/907-get-loaded-classes/get_loaded_classes.cc
index 5ec56c4997..1eadf15fc1 100644
--- a/test/907-get-loaded-classes/get_loaded_classes.cc
+++ b/test/907-get-loaded-classes/get_loaded_classes.cc
@@ -39,7 +39,7 @@ static jstring GetClassName(JNIEnv* jni_env, jclass cls) {
return reinterpret_cast<jstring>(jni_env->CallObjectMethod(cls, mid));
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getLoadedClasses(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test907_getLoadedClasses(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED) {
jint count = -1;
jclass* classes = nullptr;
diff --git a/test/907-get-loaded-classes/src/Main.java b/test/907-get-loaded-classes/src/Main.java
index 370185a4d9..d654428819 100644
--- a/test/907-get-loaded-classes/src/Main.java
+++ b/test/907-get-loaded-classes/src/Main.java
@@ -14,12 +14,15 @@
* limitations under the License.
*/
+package art;
+
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test907 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test907.class);
doTest();
}
@@ -33,7 +36,8 @@ public class Main {
HashSet<String> classesSet = new HashSet<>(Arrays.asList(classes));
String[] shouldBeLoaded = new String[] {
- "java.lang.Object", "java.lang.Class", "java.lang.String", "Main$A", "Main$B", "[LMain$A;"
+ "java.lang.Object", "java.lang.Class", "java.lang.String", "art.Test907$A",
+ "art.Test907$B", "[Lart.Test907$A;"
};
boolean error = false;
diff --git a/test/908-gc-start-finish/gc_callbacks.cc b/test/908-gc-start-finish/gc_callbacks.cc
index f186895f84..ddd2ba7734 100644
--- a/test/908-gc-start-finish/gc_callbacks.cc
+++ b/test/908-gc-start-finish/gc_callbacks.cc
@@ -40,7 +40,7 @@ static void JNICALL GarbageCollectionStart(jvmtiEnv* ti_env ATTRIBUTE_UNUSED) {
starts++;
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setupGcCallback(
+extern "C" JNIEXPORT void JNICALL Java_art_Test908_setupGcCallback(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED) {
jvmtiEventCallbacks callbacks;
memset(&callbacks, 0, sizeof(jvmtiEventCallbacks));
@@ -51,9 +51,9 @@ extern "C" JNIEXPORT void JNICALL Java_Main_setupGcCallback(
JvmtiErrorToException(env, jvmti_env, ret);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_enableGcTracking(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jboolean enable) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test908_enableGcTracking(JNIEnv* env,
+ jclass klass ATTRIBUTE_UNUSED,
+ jboolean enable) {
jvmtiError ret = jvmti_env->SetEventNotificationMode(
enable ? JVMTI_ENABLE : JVMTI_DISABLE,
JVMTI_EVENT_GARBAGE_COLLECTION_START,
@@ -70,15 +70,15 @@ extern "C" JNIEXPORT void JNICALL Java_Main_enableGcTracking(JNIEnv* env,
}
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getGcStarts(JNIEnv* env ATTRIBUTE_UNUSED,
- jclass klass ATTRIBUTE_UNUSED) {
+extern "C" JNIEXPORT jint JNICALL Java_art_Test908_getGcStarts(JNIEnv* env ATTRIBUTE_UNUSED,
+ jclass klass ATTRIBUTE_UNUSED) {
jint result = static_cast<jint>(starts);
starts = 0;
return result;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getGcFinishes(JNIEnv* env ATTRIBUTE_UNUSED,
- jclass klass ATTRIBUTE_UNUSED) {
+extern "C" JNIEXPORT jint JNICALL Java_art_Test908_getGcFinishes(JNIEnv* env ATTRIBUTE_UNUSED,
+ jclass klass ATTRIBUTE_UNUSED) {
jint result = static_cast<jint>(finishes);
finishes = 0;
return result;
diff --git a/test/908-gc-start-finish/src/Main.java b/test/908-gc-start-finish/src/Main.java
index 05388c917a..ceaa98cd9f 100644
--- a/test/908-gc-start-finish/src/Main.java
+++ b/test/908-gc-start-finish/src/Main.java
@@ -14,10 +14,13 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test908 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test908.class);
doTest();
}
diff --git a/test/910-methods/expected.txt b/test/910-methods/expected.txt
index e87929f00c..8e6b6e76d9 100644
--- a/test/910-methods/expected.txt
+++ b/test/910-methods/expected.txt
@@ -48,7 +48,7 @@ Location end: 0
Is native: false
Is obsolete: false
Is synthetic: false
-class Main$NestedSynthetic
+class art.Test910$NestedSynthetic
4104
Max locals: 1
Argument size: 0
diff --git a/test/910-methods/methods.cc b/test/910-methods/methods.cc
index ded4f09df7..9c726e1d5c 100644
--- a/test/910-methods/methods.cc
+++ b/test/910-methods/methods.cc
@@ -30,7 +30,7 @@
namespace art {
namespace Test910Methods {
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getMethodName(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test910_getMethodName(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -73,7 +73,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getMethodName(
return ret;
}
-extern "C" JNIEXPORT jclass JNICALL Java_Main_getMethodDeclaringClass(
+extern "C" JNIEXPORT jclass JNICALL Java_art_Test910_getMethodDeclaringClass(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -86,7 +86,7 @@ extern "C" JNIEXPORT jclass JNICALL Java_Main_getMethodDeclaringClass(
return declaring_class;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getMethodModifiers(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test910_getMethodModifiers(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -99,7 +99,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getMethodModifiers(
return modifiers;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getMaxLocals(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test910_getMaxLocals(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -112,7 +112,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getMaxLocals(
return max_locals;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getArgumentsSize(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test910_getArgumentsSize(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -125,7 +125,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getArgumentsSize(
return arguments;
}
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationStart(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test910_getMethodLocationStart(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -139,7 +139,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationStart(
return start;
}
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationEnd(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test910_getMethodLocationEnd(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -153,7 +153,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getMethodLocationEnd(
return end;
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodNative(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test910_isMethodNative(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -166,7 +166,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodNative(
return is_native;
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodObsolete(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test910_isMethodObsolete(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
@@ -179,7 +179,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodObsolete(
return is_obsolete;
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_isMethodSynthetic(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test910_isMethodSynthetic(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject method) {
jmethodID id = env->FromReflectedMethod(method);
diff --git a/test/910-methods/src/Main.java b/test/910-methods/src/Main.java
index 932a1ea414..b3490e9518 100644
--- a/test/910-methods/src/Main.java
+++ b/test/910-methods/src/Main.java
@@ -14,12 +14,15 @@
* limitations under the License.
*/
+package art;
+
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test910 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test910.class);
doTest();
}
diff --git a/test/911-get-stack-trace/expected.txt b/test/911-get-stack-trace/expected.txt
index feabb2087e..2318414010 100644
--- a/test/911-get-stack-trace/expected.txt
+++ b/test/911-get-stack-trace/expected.txt
@@ -4,72 +4,74 @@
From top
---------
getStackTrace (Ljava/lang/Thread;II)[[Ljava/lang/String; -1 -2
- print (Ljava/lang/Thread;II)V 0 34
- printOrWait (IILControlData;)V 6 39
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- doTest ()V 38 23
- main ([Ljava/lang/String;)V 3 21
----------
- print (Ljava/lang/Thread;II)V 0 34
- printOrWait (IILControlData;)V 6 39
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- doTest ()V 42 24
- main ([Ljava/lang/String;)V 3 21
+ print (Ljava/lang/Thread;II)V 0 36
+ printOrWait (IILart/ControlData;)V 6 41
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ doTest ()V 38 25
+ run ()V 20 26
+ main ([Ljava/lang/String;)V 0 19
+---------
+ print (Ljava/lang/Thread;II)V 0 36
+ printOrWait (IILart/ControlData;)V 6 41
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ doTest ()V 42 26
+ run ()V 20 26
+ main ([Ljava/lang/String;)V 0 19
---------
getStackTrace (Ljava/lang/Thread;II)[[Ljava/lang/String; -1 -2
- print (Ljava/lang/Thread;II)V 0 34
- printOrWait (IILControlData;)V 6 39
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
----------
- printOrWait (IILControlData;)V 6 39
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
+ print (Ljava/lang/Thread;II)V 0 36
+ printOrWait (IILart/ControlData;)V 6 41
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+---------
+ printOrWait (IILart/ControlData;)V 6 41
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
From bottom
---------
- main ([Ljava/lang/String;)V 3 21
+ main ([Ljava/lang/String;)V 0 19
---------
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- doTest ()V 65 30
- main ([Ljava/lang/String;)V 3 21
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ doTest ()V 65 32
+ run ()V 20 26
+ main ([Ljava/lang/String;)V 0 19
---------
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ doTest ()V 69 33
################################
### Other thread (suspended) ###
@@ -77,135 +79,135 @@ From bottom
From top
---------
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 26
----------
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 26
----------
- wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
----------
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 28
+---------
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 28
+---------
+ wait ()V -1 -2
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+---------
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
From bottom
---------
- run ()V 4 26
+ run ()V 4 28
---------
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 28
---------
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
###########################
### Other thread (live) ###
###########################
From top
---------
- printOrWait (IILControlData;)V 44 52
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 59
----------
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 59
----------
- printOrWait (IILControlData;)V 44 52
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
----------
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 44 54
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 61
+---------
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 61
+---------
+ printOrWait (IILart/ControlData;)V 44 54
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+---------
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
From bottom
---------
- run ()V 4 59
+ run ()V 4 61
---------
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 59
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 61
---------
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
################################
### Other threads (suspended) ###
@@ -261,82 +263,82 @@ main
---------
AllTraces Thread 0
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 1
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 2
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 3
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 4
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 5
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 6
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 7
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 8
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
AllTraces Thread 9
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
FinalizerDaemon
@@ -356,219 +358,220 @@ Signal Catcher
---------
main
getAllStackTraces (I)[[Ljava/lang/Object; -1 -2
- printAll (I)V 0 73
- doTest ()V 128 57
- main ([Ljava/lang/String;)V 27 33
+ printAll (I)V 0 75
+ doTest ()V 128 59
+ run ()V 44 38
+ main ([Ljava/lang/String;)V 0 19
---------
AllTraces Thread 0
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 1
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 2
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 3
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 4
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 5
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 6
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 7
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 8
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
AllTraces Thread 9
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 45
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 47
---------
FinalizerDaemon
@@ -588,9 +591,10 @@ Signal Catcher
---------
main
getAllStackTraces (I)[[Ljava/lang/Object; -1 -2
- printAll (I)V 0 73
- doTest ()V 133 59
- main ([Ljava/lang/String;)V 27 33
+ printAll (I)V 0 75
+ doTest ()V 133 61
+ run ()V 44 38
+ main ([Ljava/lang/String;)V 0 19
########################################
@@ -617,172 +621,175 @@ main
---------
ThreadListTraces Thread 0
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
ThreadListTraces Thread 2
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
ThreadListTraces Thread 4
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
ThreadListTraces Thread 6
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
ThreadListTraces Thread 8
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
---------
main
getThreadListStackTraces ([Ljava/lang/Thread;I)[[Ljava/lang/Object; -1 -2
- printList ([Ljava/lang/Thread;I)V 0 66
- doTest ()V 116 52
- main ([Ljava/lang/String;)V 35 37
+ printList ([Ljava/lang/Thread;I)V 0 68
+ doTest ()V 116 54
+ run ()V 52 42
+ main ([Ljava/lang/String;)V 0 19
---------
ThreadListTraces Thread 0
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 35
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 37
---------
ThreadListTraces Thread 2
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 35
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 37
---------
ThreadListTraces Thread 4
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 35
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 37
---------
ThreadListTraces Thread 6
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 35
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 37
---------
ThreadListTraces Thread 8
wait ()V -1 -2
- printOrWait (IILControlData;)V 24 45
- baz (IIILControlData;)Ljava/lang/Object; 2 30
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- baz (IIILControlData;)Ljava/lang/Object; 9 32
- bar (IIILControlData;)J 0 24
- foo (IIILControlData;)I 0 19
- run ()V 4 35
+ printOrWait (IILart/ControlData;)V 24 47
+ baz (IIILart/ControlData;)Ljava/lang/Object; 2 32
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ baz (IIILart/ControlData;)Ljava/lang/Object; 9 34
+ bar (IIILart/ControlData;)J 0 26
+ foo (IIILart/ControlData;)I 0 21
+ run ()V 4 37
---------
main
getThreadListStackTraces ([Ljava/lang/Thread;I)[[Ljava/lang/Object; -1 -2
- printList ([Ljava/lang/Thread;I)V 0 66
- doTest ()V 121 54
- main ([Ljava/lang/String;)V 35 37
+ printList ([Ljava/lang/Thread;I)V 0 68
+ doTest ()V 121 56
+ run ()V 52 42
+ main ([Ljava/lang/String;)V 0 19
###################
### Same thread ###
###################
-4
+5
JVMTI_ERROR_ILLEGAL_ARGUMENT
-[public static native java.lang.Object[] Frames.getFrameLocation(java.lang.Thread,int), ffffffff]
-[public static void Frames.doTestSameThread(), 38]
-[public static void Frames.doTest() throws java.lang.Exception, 0]
-[public static void Main.main(java.lang.String[]) throws java.lang.Exception, 2b]
+[public static native java.lang.Object[] art.Frames.getFrameLocation(java.lang.Thread,int), ffffffff]
+[public static void art.Frames.doTestSameThread(), 38]
+[public static void art.Frames.doTest() throws java.lang.Exception, 0]
+[public static void art.Test911.run() throws java.lang.Exception, 3c]
+[public static void Main.main(java.lang.String[]) throws java.lang.Exception, 0]
JVMTI_ERROR_NO_MORE_FRAMES
################################
@@ -791,23 +798,23 @@ JVMTI_ERROR_NO_MORE_FRAMES
18
JVMTI_ERROR_ILLEGAL_ARGUMENT
[public final native void java.lang.Object.wait() throws java.lang.InterruptedException, ffffffff]
-[private static void Recurse.printOrWait(int,int,ControlData), 18]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 2]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[public void Frames$1.run(), 4]
+[private static void art.Recurse.printOrWait(int,int,art.ControlData), 18]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 2]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[public void art.Frames$1.run(), 4]
JVMTI_ERROR_NO_MORE_FRAMES
###########################
@@ -815,22 +822,22 @@ JVMTI_ERROR_NO_MORE_FRAMES
###########################
17
JVMTI_ERROR_ILLEGAL_ARGUMENT
-[private static void Recurse.printOrWait(int,int,ControlData), 2c]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 2]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[private static java.lang.Object Recurse.baz(int,int,int,ControlData), 9]
-[private static long Recurse.bar(int,int,int,ControlData), 0]
-[public static int Recurse.foo(int,int,int,ControlData), 0]
-[public void Frames$2.run(), 4]
+[private static void art.Recurse.printOrWait(int,int,art.ControlData), 2c]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 2]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[private static java.lang.Object art.Recurse.baz(int,int,int,art.ControlData), 9]
+[private static long art.Recurse.bar(int,int,int,art.ControlData), 0]
+[public static int art.Recurse.foo(int,int,int,art.ControlData), 0]
+[public void art.Frames$2.run(), 4]
JVMTI_ERROR_NO_MORE_FRAMES
Done
diff --git a/test/911-get-stack-trace/src/AllTraces.java b/test/911-get-stack-trace/src/AllTraces.java
index 1d9aa96d6e..d73f78bba1 100644
--- a/test/911-get-stack-trace/src/AllTraces.java
+++ b/test/911-get-stack-trace/src/AllTraces.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.List;
diff --git a/test/911-get-stack-trace/src/ControlData.java b/test/911-get-stack-trace/src/ControlData.java
index 76ac4b8caa..b5f3291f30 100644
--- a/test/911-get-stack-trace/src/ControlData.java
+++ b/test/911-get-stack-trace/src/ControlData.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.concurrent.CountDownLatch;
public class ControlData {
diff --git a/test/911-get-stack-trace/src/Frames.java b/test/911-get-stack-trace/src/Frames.java
index 54d4165130..b3d81bf9f7 100644
--- a/test/911-get-stack-trace/src/Frames.java
+++ b/test/911-get-stack-trace/src/Frames.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.Arrays;
public class Frames {
diff --git a/test/911-get-stack-trace/src/Main.java b/test/911-get-stack-trace/src/Main.java
index 96a427d77b..71a5196c22 100644
--- a/test/911-get-stack-trace/src/Main.java
+++ b/test/911-get-stack-trace/src/Main.java
@@ -14,9 +14,14 @@
* limitations under the License.
*/
-public class Main {
- public static void main(String[] args) throws Exception {
- bindTest911Classes();
+package art;
+
+public class Test911 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(AllTraces.class);
+ Main.bindAgentJNIForClass(Frames.class);
+ Main.bindAgentJNIForClass(PrintThread.class);
+ Main.bindAgentJNIForClass(ThreadListTraces.class);
SameThread.doTest();
@@ -42,6 +47,4 @@ public class Main {
System.out.println("Done");
}
-
- private static native void bindTest911Classes();
}
diff --git a/test/911-get-stack-trace/src/OtherThread.java b/test/911-get-stack-trace/src/OtherThread.java
index 0a78523a91..675bff55a6 100644
--- a/test/911-get-stack-trace/src/OtherThread.java
+++ b/test/911-get-stack-trace/src/OtherThread.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
public class OtherThread {
public static void doTestOtherThreadWait() throws Exception {
System.out.println("################################");
diff --git a/test/911-get-stack-trace/src/PrintThread.java b/test/911-get-stack-trace/src/PrintThread.java
index 136fd80d40..de1da9c8a6 100644
--- a/test/911-get-stack-trace/src/PrintThread.java
+++ b/test/911-get-stack-trace/src/PrintThread.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
diff --git a/test/911-get-stack-trace/src/Recurse.java b/test/911-get-stack-trace/src/Recurse.java
index 439fbaaf84..438fdfdbba 100644
--- a/test/911-get-stack-trace/src/Recurse.java
+++ b/test/911-get-stack-trace/src/Recurse.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
public class Recurse {
public static int foo(int x, int start, int max, ControlData data) {
bar(x, start, max, data);
diff --git a/test/911-get-stack-trace/src/SameThread.java b/test/911-get-stack-trace/src/SameThread.java
index f1e19e367a..c9afad5570 100644
--- a/test/911-get-stack-trace/src/SameThread.java
+++ b/test/911-get-stack-trace/src/SameThread.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
public class SameThread {
public static void doTest() throws Exception {
System.out.println("###################");
diff --git a/test/911-get-stack-trace/src/ThreadListTraces.java b/test/911-get-stack-trace/src/ThreadListTraces.java
index 14868e9c36..0de93de706 100644
--- a/test/911-get-stack-trace/src/ThreadListTraces.java
+++ b/test/911-get-stack-trace/src/ThreadListTraces.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
public class ThreadListTraces {
public static void doTest() throws Exception {
System.out.println("########################################");
diff --git a/test/911-get-stack-trace/stack_trace.cc b/test/911-get-stack-trace/stack_trace.cc
index a499e90ad9..985120ceb2 100644
--- a/test/911-get-stack-trace/stack_trace.cc
+++ b/test/911-get-stack-trace/stack_trace.cc
@@ -37,14 +37,6 @@ namespace Test911GetStackTrace {
using android::base::StringPrintf;
-extern "C" JNIEXPORT void JNICALL Java_Main_bindTest911Classes(
- JNIEnv* env, jclass klass ATTRIBUTE_UNUSED) {
- BindFunctions(jvmti_env, env, "AllTraces");
- BindFunctions(jvmti_env, env, "Frames");
- BindFunctions(jvmti_env, env, "PrintThread");
- BindFunctions(jvmti_env, env, "ThreadListTraces");
-}
-
static jint FindLineNumber(jint line_number_count,
jvmtiLineNumberEntry* line_number_table,
jlocation location) {
@@ -132,7 +124,7 @@ static jobjectArray TranslateJvmtiFrameInfoArray(JNIEnv* env,
return CreateObjectArray(env, count, "[Ljava/lang/String;", callback);
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_PrintThread_getStackTrace(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_PrintThread_getStackTrace(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jthread thread, jint start, jint max) {
std::unique_ptr<jvmtiFrameInfo[]> frames(new jvmtiFrameInfo[max]);
@@ -147,7 +139,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_PrintThread_getStackTrace(
return TranslateJvmtiFrameInfoArray(env, frames.get(), count);
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_AllTraces_getAllStackTraces(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_AllTraces_getAllStackTraces(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jint max) {
jint thread_count;
jvmtiStackInfo* stack_infos;
@@ -175,7 +167,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_AllTraces_getAllStackTraces(
return ret;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_ThreadListTraces_getThreadListStackTraces(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_ThreadListTraces_getThreadListStackTraces(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobjectArray jthreads, jint max) {
jint thread_count = env->GetArrayLength(jthreads);
std::unique_ptr<jthread[]> threads(new jthread[thread_count]);
@@ -211,7 +203,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_ThreadListTraces_getThreadListSta
return ret;
}
-extern "C" JNIEXPORT jint JNICALL Java_Frames_getFrameCount(
+extern "C" JNIEXPORT jint JNICALL Java_art_Frames_getFrameCount(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jthread thread) {
jint count;
jvmtiError result = jvmti_env->GetFrameCount(thread, &count);
@@ -221,7 +213,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Frames_getFrameCount(
return count;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Frames_getFrameLocation(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Frames_getFrameLocation(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jthread thread, jint depth) {
jmethodID method;
jlocation location;
diff --git a/test/912-classes/src/Main.java b/test/912-classes/src/Main.java
index 643b08076e..6c8858ab65 100644
--- a/test/912-classes/src/Main.java
+++ b/test/912-classes/src/Main.java
@@ -23,6 +23,7 @@ import java.util.Comparator;
public class Main {
public static void main(String[] args) throws Exception {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/913-heaps/heaps.cc b/test/913-heaps/heaps.cc
index 6a47ca139c..6a06b29152 100644
--- a/test/913-heaps/heaps.cc
+++ b/test/913-heaps/heaps.cc
@@ -44,8 +44,8 @@ namespace Test913Heaps {
using android::base::StringPrintf;
-extern "C" JNIEXPORT void JNICALL Java_Main_forceGarbageCollection(JNIEnv* env ATTRIBUTE_UNUSED,
- jclass klass ATTRIBUTE_UNUSED) {
+extern "C" JNIEXPORT void JNICALL Java_art_Test913_forceGarbageCollection(
+ JNIEnv* env ATTRIBUTE_UNUSED, jclass klass ATTRIBUTE_UNUSED) {
jvmtiError ret = jvmti_env->ForceGarbageCollection();
if (ret != JVMTI_ERROR_NONE) {
char* err;
@@ -115,14 +115,15 @@ static bool Run(jint heap_filter,
return true;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_followReferences(JNIEnv* env,
- jclass klass ATTRIBUTE_UNUSED,
- jint heap_filter,
- jclass klass_filter,
- jobject initial_object,
- jint stop_after,
- jint follow_set,
- jobject jniRef) {
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test913_followReferences(
+ JNIEnv* env,
+ jclass klass ATTRIBUTE_UNUSED,
+ jint heap_filter,
+ jclass klass_filter,
+ jobject initial_object,
+ jint stop_after,
+ jint follow_set,
+ jobject jniRef) {
class PrintIterationConfig FINAL : public IterationConfig {
public:
PrintIterationConfig(jint _stop_after, jint _follow_set)
@@ -503,7 +504,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_followReferences(JNIEnv* env
return ret;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_followReferencesString(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test913_followReferencesString(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject initial_object) {
struct FindStringCallbacks {
static jint JNICALL FollowReferencesCallback(
@@ -566,7 +567,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_followReferencesString(
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_followReferencesPrimitiveArray(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test913_followReferencesPrimitiveArray(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject initial_object) {
struct FindArrayCallbacks {
static jint JNICALL FollowReferencesCallback(
@@ -679,7 +680,7 @@ static constexpr const char* GetPrimitiveTypeName(jvmtiPrimitiveType type) {
UNREACHABLE();
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_followReferencesPrimitiveFields(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test913_followReferencesPrimitiveFields(
JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jobject initial_object) {
struct FindFieldCallbacks {
static jint JNICALL FollowReferencesCallback(
@@ -746,5 +747,62 @@ extern "C" JNIEXPORT jstring JNICALL Java_Main_followReferencesPrimitiveFields(
return env->NewStringUTF(ffc.data.c_str());
}
+// This is copied from test 908. Consider moving this to the main shim.
+
+static size_t starts = 0;
+static size_t finishes = 0;
+
+static void JNICALL GarbageCollectionFinish(jvmtiEnv* ti_env ATTRIBUTE_UNUSED) {
+ finishes++;
+}
+
+static void JNICALL GarbageCollectionStart(jvmtiEnv* ti_env ATTRIBUTE_UNUSED) {
+ starts++;
+}
+
+extern "C" JNIEXPORT void JNICALL Java_art_Test913_setupGcCallback(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED) {
+ jvmtiEventCallbacks callbacks;
+ memset(&callbacks, 0, sizeof(jvmtiEventCallbacks));
+ callbacks.GarbageCollectionFinish = GarbageCollectionFinish;
+ callbacks.GarbageCollectionStart = GarbageCollectionStart;
+
+ jvmtiError ret = jvmti_env->SetEventCallbacks(&callbacks, sizeof(callbacks));
+ JvmtiErrorToException(env, jvmti_env, ret);
+}
+
+extern "C" JNIEXPORT void JNICALL Java_art_Test913_enableGcTracking(JNIEnv* env,
+ jclass klass ATTRIBUTE_UNUSED,
+ jboolean enable) {
+ jvmtiError ret = jvmti_env->SetEventNotificationMode(
+ enable ? JVMTI_ENABLE : JVMTI_DISABLE,
+ JVMTI_EVENT_GARBAGE_COLLECTION_START,
+ nullptr);
+ if (JvmtiErrorToException(env, jvmti_env, ret)) {
+ return;
+ }
+ ret = jvmti_env->SetEventNotificationMode(
+ enable ? JVMTI_ENABLE : JVMTI_DISABLE,
+ JVMTI_EVENT_GARBAGE_COLLECTION_FINISH,
+ nullptr);
+ if (JvmtiErrorToException(env, jvmti_env, ret)) {
+ return;
+ }
+}
+
+extern "C" JNIEXPORT jint JNICALL Java_art_Test913_getGcStarts(JNIEnv* env ATTRIBUTE_UNUSED,
+ jclass klass ATTRIBUTE_UNUSED) {
+ jint result = static_cast<jint>(starts);
+ starts = 0;
+ return result;
+}
+
+extern "C" JNIEXPORT jint JNICALL Java_art_Test913_getGcFinishes(JNIEnv* env ATTRIBUTE_UNUSED,
+ jclass klass ATTRIBUTE_UNUSED) {
+ jint result = static_cast<jint>(finishes);
+ finishes = 0;
+ return result;
+}
+
} // namespace Test913Heaps
} // namespace art
diff --git a/test/913-heaps/src/Main.java b/test/913-heaps/src/Main.java
index 10778ff3dd..c54ecb049f 100644
--- a/test/913-heaps/src/Main.java
+++ b/test/913-heaps/src/Main.java
@@ -14,14 +14,18 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test913 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test913.class);
+
doTest();
new TestConfig().doFollowReferencesTest();
@@ -69,7 +73,7 @@ public class Main {
setupGcCallback();
enableGcTracking(true);
- run();
+ runGc();
enableGcTracking(false);
}
@@ -191,7 +195,7 @@ public class Main {
System.out.println(getTag(floatObject));
}
- private static void run() {
+ private static void runGc() {
clearStats();
forceGarbageCollection();
printStats();
@@ -595,15 +599,19 @@ public class Main {
}
}
+ private static void setTag(Object o, long tag) {
+ Main.setTag(o, tag);
+ }
+ private static long getTag(Object o) {
+ return Main.getTag(o);
+ }
+
private static native void setupGcCallback();
private static native void enableGcTracking(boolean enable);
private static native int getGcStarts();
private static native int getGcFinishes();
private static native void forceGarbageCollection();
- public static native void setTag(Object o, long tag);
- public static native long getTag(Object o);
-
public static native String[] followReferences(int heapFilter, Class<?> klassFilter,
Object initialObject, int stopAfter, int followSet, Object jniRef);
public static native String[] followReferencesString(Object initialObject);
diff --git a/test/914-hello-obsolescence/src/Main.java b/test/914-hello-obsolescence/src/Main.java
index 8a1471693a..2ec7664f0f 100644
--- a/test/914-hello-obsolescence/src/Main.java
+++ b/test/914-hello-obsolescence/src/Main.java
@@ -53,6 +53,7 @@ public class Main {
"AAACIAAAEQAAAKIBAAADIAAAAgAAAJECAAAAIAAAAQAAAJ8CAAAAEAAAAQAAALACAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/915-obsolete-2/src/Main.java b/test/915-obsolete-2/src/Main.java
index 0e3145c220..fc73ee86fc 100644
--- a/test/915-obsolete-2/src/Main.java
+++ b/test/915-obsolete-2/src/Main.java
@@ -79,6 +79,7 @@ public class Main {
"IAAAFwAAAD4CAAADIAAABAAAAAgEAAAAIAAAAQAAACYEAAAAEAAAAQAAADwEAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/916-obsolete-jit/src/Main.java b/test/916-obsolete-jit/src/Main.java
index 2b3296f1f2..3453261f44 100644
--- a/test/916-obsolete-jit/src/Main.java
+++ b/test/916-obsolete-jit/src/Main.java
@@ -113,6 +113,7 @@ public class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform(), new TestWatcher());
}
diff --git a/test/917-fields-transformation/src/Main.java b/test/917-fields-transformation/src/Main.java
index 632a5c8b21..588af49cca 100644
--- a/test/917-fields-transformation/src/Main.java
+++ b/test/917-fields-transformation/src/Main.java
@@ -55,6 +55,7 @@ public class Main {
"AAIgAAAMAAAAXAEAAAMgAAACAAAA4QEAAAAgAAABAAAA8AEAAAAQAAABAAAABAIAAA==");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform("Hello", "Goodbye"),
new Transform("start", "end"));
}
diff --git a/test/918-fields/expected.txt b/test/918-fields/expected.txt
index 1a1209c34c..af786159cc 100644
--- a/test/918-fields/expected.txt
+++ b/test/918-fields/expected.txt
@@ -6,15 +6,15 @@ false
class java.lang.Integer
18
false
-[this$0, LMain;, null]
-class Main$Foo
+[this$0, Lart/Test918;, null]
+class art.Test918$Foo
4112
true
[VAL, I, null]
-interface Main$Bar
+interface art.Test918$Bar
25
false
[generics, Ljava/lang/Object;, TT;]
-class Main$Generics
+class art.Test918$Generics
0
false
diff --git a/test/918-fields/fields.cc b/test/918-fields/fields.cc
index 726c5cf161..e63acefc79 100644
--- a/test/918-fields/fields.cc
+++ b/test/918-fields/fields.cc
@@ -28,7 +28,7 @@
namespace art {
namespace Test918Fields {
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getFieldName(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test918_getFieldName(
JNIEnv* env, jclass klass, jobject field) {
jfieldID id = env->FromReflectedField(field);
@@ -80,7 +80,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getFieldName(
return ret;
}
-extern "C" JNIEXPORT jclass JNICALL Java_Main_getFieldDeclaringClass(
+extern "C" JNIEXPORT jclass JNICALL Java_art_Test918_getFieldDeclaringClass(
JNIEnv* env, jclass klass, jobject field) {
jfieldID id = env->FromReflectedField(field);
@@ -97,7 +97,7 @@ extern "C" JNIEXPORT jclass JNICALL Java_Main_getFieldDeclaringClass(
return declaring_class;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getFieldModifiers(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test918_getFieldModifiers(
JNIEnv* env, jclass klass, jobject field) {
jfieldID id = env->FromReflectedField(field);
@@ -114,7 +114,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getFieldModifiers(
return modifiers;
}
-extern "C" JNIEXPORT jboolean JNICALL Java_Main_isFieldSynthetic(
+extern "C" JNIEXPORT jboolean JNICALL Java_art_Test918_isFieldSynthetic(
JNIEnv* env, jclass klass, jobject field) {
jfieldID id = env->FromReflectedField(field);
diff --git a/test/918-fields/src/Main.java b/test/918-fields/src/Main.java
index ad0d0c5dc2..89d518c82d 100644
--- a/test/918-fields/src/Main.java
+++ b/test/918-fields/src/Main.java
@@ -14,11 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.lang.reflect.Field;
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test918 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test918.class);
doTest();
}
diff --git a/test/919-obsolete-fields/src/Main.java b/test/919-obsolete-fields/src/Main.java
index ffb9897236..34ee2a97f5 100644
--- a/test/919-obsolete-fields/src/Main.java
+++ b/test/919-obsolete-fields/src/Main.java
@@ -116,6 +116,7 @@ public class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
TestWatcher w = new TestWatcher();
doTest(new Transform(w), w);
}
diff --git a/test/920-objects/objects.cc b/test/920-objects/objects.cc
index 5263e753ed..101ebb9acd 100644
--- a/test/920-objects/objects.cc
+++ b/test/920-objects/objects.cc
@@ -27,7 +27,7 @@
namespace art {
namespace Test920Objects {
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getObjectSize(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test920_getObjectSize(
JNIEnv* env ATTRIBUTE_UNUSED, jclass klass ATTRIBUTE_UNUSED, jobject object) {
jlong size;
@@ -43,7 +43,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getObjectSize(
return size;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getObjectHashCode(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test920_getObjectHashCode(
JNIEnv* env ATTRIBUTE_UNUSED, jclass klass ATTRIBUTE_UNUSED, jobject object) {
jint hash;
diff --git a/test/920-objects/src/Main.java b/test/920-objects/src/Main.java
index 5dbe1a7e58..708e417e6b 100644
--- a/test/920-objects/src/Main.java
+++ b/test/920-objects/src/Main.java
@@ -14,13 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.lang.reflect.Field;
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
- System.loadLibrary(args[1]);
-
+public class Test920 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test920.class);
doTest();
}
diff --git a/test/921-hello-failure/src/Main.java b/test/921-hello-failure/src/Main.java
index 6779ed862a..d9a49489f0 100644
--- a/test/921-hello-failure/src/Main.java
+++ b/test/921-hello-failure/src/Main.java
@@ -18,6 +18,8 @@ import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
+
Verification.doTest(new Transform());
NewName.doTest(new Transform());
DifferentAccess.doTest(new Transform());
diff --git a/test/922-properties/properties.cc b/test/922-properties/properties.cc
index 896e4c30af..6af45f54d6 100644
--- a/test/922-properties/properties.cc
+++ b/test/922-properties/properties.cc
@@ -29,7 +29,7 @@
namespace art {
namespace Test922Properties {
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getSystemProperties(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test922_getSystemProperties(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jint count;
char** properties;
@@ -54,7 +54,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getSystemProperties(
return ret;
}
-extern "C" JNIEXPORT jstring JNICALL Java_Main_getSystemProperty(
+extern "C" JNIEXPORT jstring JNICALL Java_art_Test922_getSystemProperty(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jstring key) {
ScopedUtfChars string(env, key);
if (string.c_str() == nullptr) {
@@ -74,7 +74,7 @@ extern "C" JNIEXPORT jstring JNICALL Java_Main_getSystemProperty(
return ret;
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setSystemProperty(
+extern "C" JNIEXPORT void JNICALL Java_art_Test922_setSystemProperty(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jstring key, jstring value) {
ScopedUtfChars key_string(env, key);
if (key_string.c_str() == nullptr) {
diff --git a/test/922-properties/src/Main.java b/test/922-properties/src/Main.java
index 8ad742f0ca..4b2204a86c 100644
--- a/test/922-properties/src/Main.java
+++ b/test/922-properties/src/Main.java
@@ -14,11 +14,14 @@
* limitations under the License.
*/
+package art;
+
import java.util.Set;
import java.util.TreeSet;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test922 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test922.class);
doTest();
}
diff --git a/test/923-monitors/monitors.cc b/test/923-monitors/monitors.cc
index 6369a740e1..9afe22de04 100644
--- a/test/923-monitors/monitors.cc
+++ b/test/923-monitors/monitors.cc
@@ -37,7 +37,7 @@ static jrawMonitorID LongToMonitor(jlong l) {
return reinterpret_cast<jrawMonitorID>(static_cast<uintptr_t>(l));
}
-extern "C" JNIEXPORT jlong JNICALL Java_Main_createRawMonitor(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test923_createRawMonitor(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jrawMonitorID id;
jvmtiError result = jvmti_env->CreateRawMonitor("dummy", &id);
@@ -47,37 +47,37 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_createRawMonitor(
return MonitorToLong(id);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_destroyRawMonitor(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_destroyRawMonitor(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l) {
jvmtiError result = jvmti_env->DestroyRawMonitor(LongToMonitor(l));
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_rawMonitorEnter(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_rawMonitorEnter(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l) {
jvmtiError result = jvmti_env->RawMonitorEnter(LongToMonitor(l));
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_rawMonitorExit(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_rawMonitorExit(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l) {
jvmtiError result = jvmti_env->RawMonitorExit(LongToMonitor(l));
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_rawMonitorWait(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_rawMonitorWait(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l, jlong millis) {
jvmtiError result = jvmti_env->RawMonitorWait(LongToMonitor(l), millis);
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_rawMonitorNotify(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_rawMonitorNotify(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l) {
jvmtiError result = jvmti_env->RawMonitorNotify(LongToMonitor(l));
JvmtiErrorToException(env, jvmti_env, result);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_rawMonitorNotifyAll(
+extern "C" JNIEXPORT void JNICALL Java_art_Test923_rawMonitorNotifyAll(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jlong l) {
jvmtiError result = jvmti_env->RawMonitorNotifyAll(LongToMonitor(l));
JvmtiErrorToException(env, jvmti_env, result);
diff --git a/test/923-monitors/src/Main.java b/test/923-monitors/src/Main.java
index ef00728d10..02e86a6891 100644
--- a/test/923-monitors/src/Main.java
+++ b/test/923-monitors/src/Main.java
@@ -14,13 +14,16 @@
* limitations under the License.
*/
+package art;
+
import java.util.concurrent.CountDownLatch;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test923 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test923.class);
doTest();
}
diff --git a/test/924-threads/src/Main.java b/test/924-threads/src/Main.java
index 7328560084..160bf8ea67 100644
--- a/test/924-threads/src/Main.java
+++ b/test/924-threads/src/Main.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
@@ -24,8 +26,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test924 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test924.class);
doTest();
}
diff --git a/test/924-threads/threads.cc b/test/924-threads/threads.cc
index a8b37ecd37..701ab1def3 100644
--- a/test/924-threads/threads.cc
+++ b/test/924-threads/threads.cc
@@ -34,7 +34,7 @@ namespace Test924Threads {
// private static native Thread getCurrentThread();
// private static native Object[] getThreadInfo(Thread t);
-extern "C" JNIEXPORT jthread JNICALL Java_Main_getCurrentThread(
+extern "C" JNIEXPORT jthread JNICALL Java_art_Test924_getCurrentThread(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jthread thread = nullptr;
jvmtiError result = jvmti_env->GetCurrentThread(&thread);
@@ -44,7 +44,7 @@ extern "C" JNIEXPORT jthread JNICALL Java_Main_getCurrentThread(
return thread;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getThreadInfo(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test924_getThreadInfo(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthread thread) {
jvmtiThreadInfo info;
memset(&info, 0, sizeof(jvmtiThreadInfo));
@@ -92,7 +92,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getThreadInfo(
return ret;
}
-extern "C" JNIEXPORT jint JNICALL Java_Main_getThreadState(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test924_getThreadState(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthread thread) {
jint state;
jvmtiError result = jvmti_env->GetThreadState(thread, &state);
@@ -102,7 +102,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getThreadState(
return state;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getAllThreads(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test924_getAllThreads(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jint thread_count;
jthread* threads;
@@ -122,7 +122,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getAllThreads(
return ret;
}
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getTLS(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test924_getTLS(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthread thread) {
void* tls;
jvmtiError result = jvmti_env->GetThreadLocalStorage(thread, &tls);
@@ -132,7 +132,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getTLS(
return static_cast<jlong>(reinterpret_cast<uintptr_t>(tls));
}
-extern "C" JNIEXPORT void JNICALL Java_Main_setTLS(
+extern "C" JNIEXPORT void JNICALL Java_art_Test924_setTLS(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthread thread, jlong val) {
const void* tls = reinterpret_cast<void*>(static_cast<uintptr_t>(val));
jvmtiError result = jvmti_env->SetThreadLocalStorage(thread, tls);
@@ -168,7 +168,7 @@ static void JNICALL ThreadEnd(jvmtiEnv* jvmti_env,
ThreadEvent(jvmti_env, jni_env, thread, false);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_enableThreadEvents(
+extern "C" JNIEXPORT void JNICALL Java_art_Test924_enableThreadEvents(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jboolean b) {
if (b == JNI_FALSE) {
jvmtiError ret = jvmti_env->SetEventNotificationMode(JVMTI_DISABLE,
diff --git a/test/925-threadgroups/src/Main.java b/test/925-threadgroups/src/Main.java
index bf7441f9bf..14ca7a79d2 100644
--- a/test/925-threadgroups/src/Main.java
+++ b/test/925-threadgroups/src/Main.java
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+package art;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -21,8 +23,9 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test925 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test925.class);
doTest();
}
diff --git a/test/925-threadgroups/threadgroups.cc b/test/925-threadgroups/threadgroups.cc
index d55555355c..cc053bcce0 100644
--- a/test/925-threadgroups/threadgroups.cc
+++ b/test/925-threadgroups/threadgroups.cc
@@ -35,7 +35,7 @@ namespace Test925ThreadGroups {
// // Returns an array where element 0 is an array of threads and element 1 is an array of groups.
// private static native Object[] getThreadGroupChildren();
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getTopThreadGroups(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test925_getTopThreadGroups(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jthreadGroup* groups;
jint group_count;
@@ -54,7 +54,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getTopThreadGroups(
return ret;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getThreadGroupInfo(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test925_getThreadGroupInfo(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthreadGroup group) {
jvmtiThreadGroupInfo info;
jvmtiError result = jvmti_env->GetThreadGroupInfo(group, &info);
@@ -86,7 +86,7 @@ extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getThreadGroupInfo(
return CreateObjectArray(env, 4, "java/lang/Object", callback);
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getThreadGroupChildren(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test925_getThreadGroupChildren(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED, jthreadGroup group) {
jint thread_count;
jthread* threads;
diff --git a/test/926-multi-obsolescence/src/Main.java b/test/926-multi-obsolescence/src/Main.java
index 6d9f96ca0e..2440908c07 100644
--- a/test/926-multi-obsolescence/src/Main.java
+++ b/test/926-multi-obsolescence/src/Main.java
@@ -92,6 +92,7 @@ public class Main {
"AACUAQAAAiAAABEAAACiAQAAAyAAAAIAAACXAgAAACAAAAEAAAClAgAAABAAAAEAAAC0AgAA"));
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform(), new Transform2());
}
diff --git a/test/927-timers/src/Main.java b/test/927-timers/src/Main.java
index b67f66d3a7..1ed016070b 100644
--- a/test/927-timers/src/Main.java
+++ b/test/927-timers/src/Main.java
@@ -14,10 +14,13 @@
* limitations under the License.
*/
+package art;
+
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test927 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test927.class);
doTest();
}
diff --git a/test/927-timers/timers.cc b/test/927-timers/timers.cc
index 55d3921cb6..9eaac719cd 100644
--- a/test/927-timers/timers.cc
+++ b/test/927-timers/timers.cc
@@ -31,7 +31,7 @@
namespace art {
namespace Test926Timers {
-extern "C" JNIEXPORT jint JNICALL Java_Main_getAvailableProcessors(
+extern "C" JNIEXPORT jint JNICALL Java_art_Test927_getAvailableProcessors(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jint count;
jvmtiError result = jvmti_env->GetAvailableProcessors(&count);
@@ -41,7 +41,7 @@ extern "C" JNIEXPORT jint JNICALL Java_Main_getAvailableProcessors(
return count;
}
-extern "C" JNIEXPORT jlong JNICALL Java_Main_getTime(
+extern "C" JNIEXPORT jlong JNICALL Java_art_Test927_getTime(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jlong time;
jvmtiError result = jvmti_env->GetTime(&time);
@@ -51,7 +51,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_Main_getTime(
return time;
}
-extern "C" JNIEXPORT jobjectArray JNICALL Java_Main_getTimerInfo(
+extern "C" JNIEXPORT jobjectArray JNICALL Java_art_Test927_getTimerInfo(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jvmtiTimerInfo info;
jvmtiError result = jvmti_env->GetTimerInfo(&info);
diff --git a/test/928-jni-table/jni_table.cc b/test/928-jni-table/jni_table.cc
index 26a6707f91..9a8b7fed55 100644
--- a/test/928-jni-table/jni_table.cc
+++ b/test/928-jni-table/jni_table.cc
@@ -39,7 +39,7 @@ static jobject CountNewGlobalRef(JNIEnv* env, jobject o) {
return gOriginalEnv->NewGlobalRef(env, o);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_doJNITableTest(
+extern "C" JNIEXPORT void JNICALL Java_art_Test928_doJNITableTest(
JNIEnv* env, jclass klass) {
// Get the current table, as the delegate.
jvmtiError getorig_result = jvmti_env->GetJNIFunctionTable(&gOriginalEnv);
diff --git a/test/928-jni-table/src/Main.java b/test/928-jni-table/src/Main.java
index fd61b7d955..3f3935d383 100644
--- a/test/928-jni-table/src/Main.java
+++ b/test/928-jni-table/src/Main.java
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-public class Main {
- public static void main(String[] args) throws Exception {
+package art;
+
+public class Test928 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test928.class);
doJNITableTest();
System.out.println("Done");
diff --git a/test/929-search/src/Main.java b/test/929-search/src/Main.java
index bbeb0816c8..4073c3f502 100644
--- a/test/929-search/src/Main.java
+++ b/test/929-search/src/Main.java
@@ -18,6 +18,7 @@ import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/930-hello-retransform/src/Main.java b/test/930-hello-retransform/src/Main.java
index 0063c82897..da59c7440b 100644
--- a/test/930-hello-retransform/src/Main.java
+++ b/test/930-hello-retransform/src/Main.java
@@ -49,6 +49,7 @@ public class Main {
"AgAAABMCAAAAIAAAAQAAAB4CAAAAEAAAAQAAACwCAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/931-agent-thread/agent_thread.cc b/test/931-agent-thread/agent_thread.cc
index f9af8cfe71..577a97ec34 100644
--- a/test/931-agent-thread/agent_thread.cc
+++ b/test/931-agent-thread/agent_thread.cc
@@ -89,7 +89,7 @@ static void AgentMain(jvmtiEnv* jenv, JNIEnv* env, void* arg) {
CHECK(wait_result == PTHREAD_BARRIER_SERIAL_THREAD || wait_result == 0);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_testAgentThread(
+extern "C" JNIEXPORT void JNICALL Java_art_Test931_testAgentThread(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
// Create a Thread object.
ScopedLocalRef<jobject> thread_name(env, env->NewStringUTF("Agent Thread"));
diff --git a/test/931-agent-thread/src/Main.java b/test/931-agent-thread/src/Main.java
index a7639fbfb2..bc096a770f 100644
--- a/test/931-agent-thread/src/Main.java
+++ b/test/931-agent-thread/src/Main.java
@@ -14,10 +14,13 @@
* limitations under the License.
*/
+package art;
+
import java.util.Arrays;
-public class Main {
- public static void main(String[] args) throws Exception {
+public class Test931 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test931.class);
testAgentThread();
System.out.println("Done");
diff --git a/test/932-transform-saves/src/Main.java b/test/932-transform-saves/src/Main.java
index d960322071..14e5da0d91 100644
--- a/test/932-transform-saves/src/Main.java
+++ b/test/932-transform-saves/src/Main.java
@@ -79,6 +79,7 @@ public class Main {
"AgAAABMCAAAAIAAAAQAAAB4CAAAAEAAAAQAAACwCAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/933-misc-events/misc_events.cc b/test/933-misc-events/misc_events.cc
index 2b74c407e0..27dab8b31f 100644
--- a/test/933-misc-events/misc_events.cc
+++ b/test/933-misc-events/misc_events.cc
@@ -37,7 +37,7 @@ static void DumpRequestCallback(jvmtiEnv* jenv ATTRIBUTE_UNUSED) {
saw_dump_request.store(true, std::memory_order::memory_order_relaxed);
}
-extern "C" JNIEXPORT void JNICALL Java_Main_testSigQuit(
+extern "C" JNIEXPORT void JNICALL Java_art_Test933_testSigQuit(
JNIEnv* env, jclass Main_klass ATTRIBUTE_UNUSED) {
jvmtiEventCallbacks callbacks;
memset(&callbacks, 0, sizeof(jvmtiEventCallbacks));
diff --git a/test/933-misc-events/src/Main.java b/test/933-misc-events/src/Main.java
index 89801a3555..afebbf8798 100644
--- a/test/933-misc-events/src/Main.java
+++ b/test/933-misc-events/src/Main.java
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-public class Main {
- public static void main(String[] args) throws Exception {
+package art;
+
+public class Test933 {
+ public static void run() throws Exception {
+ Main.bindAgentJNIForClass(Test933.class);
testSigQuit();
System.out.println("Done");
diff --git a/test/934-load-transform/src/Main.java b/test/934-load-transform/src/Main.java
index de312b03da..606ce78a5b 100644
--- a/test/934-load-transform/src/Main.java
+++ b/test/934-load-transform/src/Main.java
@@ -66,6 +66,7 @@ class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
// Don't pop transformations. Make sure that even if 2 threads race to define the class both
// will get the same result.
setPopRetransformations(false);
diff --git a/test/935-non-retransformable/src/Main.java b/test/935-non-retransformable/src/Main.java
index 82ba197b7e..df92561784 100644
--- a/test/935-non-retransformable/src/Main.java
+++ b/test/935-non-retransformable/src/Main.java
@@ -74,6 +74,7 @@ class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
setPopRetransformations(false);
addCommonTransformationResult("Transform", CLASS_BYTES, DEX_BYTES);
enableCommonRetransformation(true);
diff --git a/test/936-search-onload/src/Main.java b/test/936-search-onload/src/Main.java
index 2e7a87193b..8d40753036 100644
--- a/test/936-search-onload/src/Main.java
+++ b/test/936-search-onload/src/Main.java
@@ -18,6 +18,7 @@ import java.util.Arrays;
public class Main {
public static void main(String[] args) throws Exception {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/937-hello-retransform-package/src/Main.java b/test/937-hello-retransform-package/src/Main.java
index 4b9271b4f4..866f75d5e6 100644
--- a/test/937-hello-retransform-package/src/Main.java
+++ b/test/937-hello-retransform-package/src/Main.java
@@ -53,6 +53,7 @@ public class Main {
"YgEAAAMgAAACAAAAGwIAAAAgAAABAAAAJgIAAAAQAAABAAAANAIAAA==");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/938-load-transform-bcp/src/Main.java b/test/938-load-transform-bcp/src/Main.java
index 548489939e..21b841f06a 100644
--- a/test/938-load-transform-bcp/src/Main.java
+++ b/test/938-load-transform-bcp/src/Main.java
@@ -96,6 +96,7 @@ class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
setPopRetransformations(false);
addCommonTransformationResult("java/util/OptionalLong", CLASS_BYTES, DEX_BYTES);
enableCommonRetransformation(true);
diff --git a/test/939-hello-transformation-bcp/src/Main.java b/test/939-hello-transformation-bcp/src/Main.java
index bdf7f592ef..0e1f845ab9 100644
--- a/test/939-hello-transformation-bcp/src/Main.java
+++ b/test/939-hello-transformation-bcp/src/Main.java
@@ -110,6 +110,7 @@ public class Main {
"AABHBgAABCAAAAIAAACVBgAAACAAAAEAAACtBgAAABAAAAEAAAD4BgAA");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
// OptionalLong is a class that is unlikely to be used by the time this test starts and is not
// likely to be changed in any meaningful way in the future.
OptionalLong ol = OptionalLong.of(0xDEADBEEF);
diff --git a/test/940-recursive-obsolete/src/Main.java b/test/940-recursive-obsolete/src/Main.java
index 3766906a89..724f82de27 100644
--- a/test/940-recursive-obsolete/src/Main.java
+++ b/test/940-recursive-obsolete/src/Main.java
@@ -70,6 +70,7 @@ public class Main {
"1gMAAAAQAAABAAAA5AMAAA==");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/941-recurive-obsolete-jit/src/Main.java b/test/941-recurive-obsolete-jit/src/Main.java
index f6d6416b55..d88bb9b722 100644
--- a/test/941-recurive-obsolete-jit/src/Main.java
+++ b/test/941-recurive-obsolete-jit/src/Main.java
@@ -99,6 +99,7 @@ public class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/942-private-recursive/src/Main.java b/test/942-private-recursive/src/Main.java
index 8cbab7bac3..cac75c02f8 100644
--- a/test/942-private-recursive/src/Main.java
+++ b/test/942-private-recursive/src/Main.java
@@ -75,6 +75,7 @@ public class Main {
"IAAAAQAAABAEAAAAEAAAAQAAACQEAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/943-private-recursive-jit/src/Main.java b/test/943-private-recursive-jit/src/Main.java
index 8fa534d997..f380c062d1 100644
--- a/test/943-private-recursive-jit/src/Main.java
+++ b/test/943-private-recursive-jit/src/Main.java
@@ -109,6 +109,7 @@ public class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/944-transform-classloaders/src/Main.java b/test/944-transform-classloaders/src/Main.java
index 4911e00a70..b558660cfd 100644
--- a/test/944-transform-classloaders/src/Main.java
+++ b/test/944-transform-classloaders/src/Main.java
@@ -203,6 +203,8 @@ public class Main {
}
private static void doTest() throws Exception {
+ art.Main.bindAgentJNIForClass(Main.class);
+
Transform t = new Transform();
Transform2 t2 = new Transform2();
diff --git a/test/945-obsolete-native/src/Main.java b/test/945-obsolete-native/src/Main.java
index 5e2154e9a3..a7901cd2bb 100644
--- a/test/945-obsolete-native/src/Main.java
+++ b/test/945-obsolete-native/src/Main.java
@@ -55,6 +55,7 @@ public class Main {
"AA==");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
bindTest945ObsoleteNative();
doTest(new Transform());
}
diff --git a/test/946-obsolete-throw/expected.txt b/test/946-obsolete-throw/expected.txt
index 91dd7df596..71d5182100 100644
--- a/test/946-obsolete-throw/expected.txt
+++ b/test/946-obsolete-throw/expected.txt
@@ -5,10 +5,10 @@ hello
transforming calling function
Received error : java.lang.Error: Throwing exception into an obsolete method!
java.lang.Error: Throwing exception into an obsolete method!
- at Main$DoRedefinitionClass.run(Main.java:64)
+ at Main$DoRedefinitionClass.run(Main.java:65)
at Transform.sayHi(Transform.java:27)
- at Main.doTest(Main.java:71)
- at Main.main(Main.java:56)
+ at Main.doTest(Main.java:72)
+ at Main.main(Main.java:57)
Hello - Transformed
Not doing anything here
Goodbye - Transformed
diff --git a/test/946-obsolete-throw/src/Main.java b/test/946-obsolete-throw/src/Main.java
index 21fe972bab..077ad72acd 100644
--- a/test/946-obsolete-throw/src/Main.java
+++ b/test/946-obsolete-throw/src/Main.java
@@ -53,6 +53,7 @@ public class Main {
"AAACIAAAEQAAAKIBAAADIAAAAgAAAJECAAAAIAAAAQAAAJ8CAAAAEAAAAQAAALACAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/947-reflect-method/src/Main.java b/test/947-reflect-method/src/Main.java
index a229dd4cf6..da746ac4db 100644
--- a/test/947-reflect-method/src/Main.java
+++ b/test/947-reflect-method/src/Main.java
@@ -51,6 +51,7 @@ public class Main {
"AgAAABMCAAAAIAAAAQAAAB4CAAAAEAAAAQAAACwCAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/948-change-annotations/src/Main.java b/test/948-change-annotations/src/Main.java
index 30bfbf9fc6..a290396ebf 100644
--- a/test/948-change-annotations/src/Main.java
+++ b/test/948-change-annotations/src/Main.java
@@ -55,6 +55,7 @@ public class Main {
"AAQgAAACAAAAmwIAAAAgAAABAAAApwIAAAAQAAABAAAAuAIAAA==");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new RemoveAnnotationsTest());
doTest(new AddAnnotationsTest());
doTest(new ChangeAnnotationValues());
diff --git a/test/949-in-memory-transform/src/Main.java b/test/949-in-memory-transform/src/Main.java
index 2ffabf5424..1a6b224a37 100644
--- a/test/949-in-memory-transform/src/Main.java
+++ b/test/949-in-memory-transform/src/Main.java
@@ -83,6 +83,7 @@ public class Main {
"AgAAABMCAAAAIAAAAQAAAB4CAAAAEAAAAQAAACwCAAA=");
public static void main(String[] args) throws Exception {
+ art.Main.bindAgentJNIForClass(Main.class);
ClassLoader loader;
try {
// Art uses this classloader to do in-memory dex files. There is no support for defineClass
diff --git a/test/950-redefine-intrinsic/src/Main.java b/test/950-redefine-intrinsic/src/Main.java
index 30cd3ab031..2578d6e278 100644
--- a/test/950-redefine-intrinsic/src/Main.java
+++ b/test/950-redefine-intrinsic/src/Main.java
@@ -425,6 +425,7 @@ public class Main {
}
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(10000);
}
diff --git a/test/951-threaded-obsolete/src/Main.java b/test/951-threaded-obsolete/src/Main.java
index 98e723670d..a82090e736 100644
--- a/test/951-threaded-obsolete/src/Main.java
+++ b/test/951-threaded-obsolete/src/Main.java
@@ -54,6 +54,7 @@ public class Main {
"AAACIAAAEQAAAKIBAAADIAAAAgAAAJECAAAAIAAAAQAAAJ8CAAAAEAAAAQAAALACAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
// Semaphores to let each thread know where the other is. We could use barriers but semaphores
// mean we don't need to have the worker thread be waiting around.
final Semaphore sem_redefine_start = new Semaphore(0);
diff --git a/test/980-redefine-object/src/Main.java b/test/980-redefine-object/src/Main.java
index 348951c4ba..a50215e1ad 100644
--- a/test/980-redefine-object/src/Main.java
+++ b/test/980-redefine-object/src/Main.java
@@ -288,6 +288,7 @@ public class Main {
System.getenv("DEX_LOCATION") + "/980-redefine-object-ex.jar";
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/981-dedup-original-dex/src/Main.java b/test/981-dedup-original-dex/src/Main.java
index 1e063cf626..288f7ce4e0 100644
--- a/test/981-dedup-original-dex/src/Main.java
+++ b/test/981-dedup-original-dex/src/Main.java
@@ -117,6 +117,7 @@ public class Main {
"AyAAAAIAAAAWAgAAACAAAAEAAAAhAgAAABAAAAEAAAAwAgAA");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
try {
doTest();
} catch (Exception e) {
diff --git a/test/982-ok-no-retransform/src/Main.java b/test/982-ok-no-retransform/src/Main.java
index 7bb4a46155..33e50d77ba 100644
--- a/test/982-ok-no-retransform/src/Main.java
+++ b/test/982-ok-no-retransform/src/Main.java
@@ -18,6 +18,7 @@ import java.util.Base64;
public class Main {
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest(new Transform());
}
diff --git a/test/983-source-transform-verify/src/Main.java b/test/983-source-transform-verify/src/Main.java
index 5f42d29abe..ad081a2006 100644
--- a/test/983-source-transform-verify/src/Main.java
+++ b/test/983-source-transform-verify/src/Main.java
@@ -18,6 +18,7 @@ import java.util.Base64;
public class Main {
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/984-obsolete-invoke/src/Main.java b/test/984-obsolete-invoke/src/Main.java
index 1a8d9bc2f3..418d64d906 100644
--- a/test/984-obsolete-invoke/src/Main.java
+++ b/test/984-obsolete-invoke/src/Main.java
@@ -54,6 +54,7 @@ public class Main {
"AAACIAAAEQAAAKIBAAADIAAAAgAAAJECAAAAIAAAAQAAAJ8CAAAAEAAAAQAAALACAAA=");
public static void main(String[] args) {
+ art.Main.bindAgentJNIForClass(Main.class);
doTest();
}
diff --git a/test/Android.bp b/test/Android.bp
index b79006fcea..9a8e1742ef 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -245,6 +245,7 @@ art_cc_defaults {
defaults: ["libartagent-defaults"],
srcs: [
// These are the ART-independent parts.
+ "ti-agent/agent_common.cc",
"ti-agent/agent_startup.cc",
"ti-agent/jni_binder.cc",
"ti-agent/jvmti_helper.cc",
diff --git a/test/ti-agent/agent_common.cc b/test/ti-agent/agent_common.cc
new file mode 100644
index 0000000000..9a91258b5b
--- /dev/null
+++ b/test/ti-agent/agent_common.cc
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "android-base/logging.h"
+#include "android-base/macros.h"
+
+#include "jvmti_helper.h"
+#include "test_env.h"
+
+namespace art {
+
+// Common JNI functions.
+
+extern "C" JNIEXPORT void JNICALL Java_art_Main_setTag(
+ JNIEnv* env, jclass, jobject obj, jlong tag) {
+ jvmtiError ret = jvmti_env->SetTag(obj, tag);
+ JvmtiErrorToException(env, jvmti_env, ret);
+}
+
+extern "C" JNIEXPORT jlong JNICALL Java_art_Main_getTag(JNIEnv* env, jclass, jobject obj) {
+ jlong tag = 0;
+ jvmtiError ret = jvmti_env->GetTag(obj, &tag);
+ if (JvmtiErrorToException(env, jvmti_env, ret)) {
+ return 0;
+ }
+ return tag;
+}
+
+} // namespace art
diff --git a/test/ti-agent/agent_startup.cc b/test/ti-agent/agent_startup.cc
index b55db7b3af..be73de5967 100644
--- a/test/ti-agent/agent_startup.cc
+++ b/test/ti-agent/agent_startup.cc
@@ -21,28 +21,30 @@
#include "jni_binder.h"
#include "jvmti_helper.h"
+#include "scoped_utf_chars.h"
+#include "test_env.h"
namespace art {
-static constexpr const char* kMainClass = "Main";
+static constexpr const char* kMainClass = "art/Main";
static StartCallback gCallback = nullptr;
// TODO: Check this. This may not work on device. The classloader containing the app's classes
// may not have been created at this point (i.e., if it's not the system classloader).
-static void JNICALL VMInitCallback(jvmtiEnv* jvmti_env,
+static void JNICALL VMInitCallback(jvmtiEnv* callback_jvmti_env,
JNIEnv* jni_env,
jthread thread ATTRIBUTE_UNUSED) {
// Bind kMainClass native methods.
- BindFunctions(jvmti_env, jni_env, kMainClass);
+ BindFunctions(callback_jvmti_env, jni_env, kMainClass);
if (gCallback != nullptr) {
- gCallback(jvmti_env, jni_env);
+ gCallback(callback_jvmti_env, jni_env);
gCallback = nullptr;
}
// And delete the jvmtiEnv.
- jvmti_env->DisposeEnvironment();
+ callback_jvmti_env->DisposeEnvironment();
}
// Install a phase callback that will bind JNI functions on VMInit.
@@ -76,20 +78,32 @@ void BindOnAttach(JavaVM* vm, StartCallback callback) {
CHECK_EQ(0, vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6))
<< "Could not get JNIEnv";
- jvmtiEnv* jvmti_env;
- CHECK_EQ(0, vm->GetEnv(reinterpret_cast<void**>(&jvmti_env), JVMTI_VERSION_1_0))
+ jvmtiEnv* bind_jvmti_env;
+ CHECK_EQ(0, vm->GetEnv(reinterpret_cast<void**>(&bind_jvmti_env), JVMTI_VERSION_1_0))
<< "Could not get jvmtiEnv";
- SetAllCapabilities(jvmti_env);
+ SetAllCapabilities(bind_jvmti_env);
- BindFunctions(jvmti_env, env, kMainClass);
+ BindFunctions(bind_jvmti_env, env, kMainClass);
if (callback != nullptr) {
- callback(jvmti_env, env);
+ callback(bind_jvmti_env, env);
}
- if (jvmti_env->DisposeEnvironment() != JVMTI_ERROR_NONE) {
+ if (bind_jvmti_env->DisposeEnvironment() != JVMTI_ERROR_NONE) {
LOG(FATAL) << "Could not dispose temporary jvmtiEnv";
}
}
+// Utility functions for art.Main shim.
+extern "C" JNIEXPORT void JNICALL Java_art_Main_bindAgentJNI(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jstring className, jobject classLoader) {
+ ScopedUtfChars name(env, className);
+ BindFunctions(jvmti_env, env, name.c_str(), classLoader);
+}
+
+extern "C" JNIEXPORT void JNICALL Java_art_Main_bindAgentJNIForClass(
+ JNIEnv* env, jclass klass ATTRIBUTE_UNUSED, jclass bindClass) {
+ BindFunctionsOnClass(jvmti_env, env, bindClass);
+}
+
} // namespace art