###################
### Same thread ###
###################
From top
---------
 getStackTrace (Ljava/lang/Thread;II)[[Ljava/lang/String; -1 -2
 print (Ljava/lang/Thread;II)V 0 38
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 doTest ()V 31 25
 run ()V 0 31
---------
 print (Ljava/lang/Thread;II)V 0 38
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 doTest ()V 35 26
 run ()V 0 31
---------
 getStackTrace (Ljava/lang/Thread;II)[[Ljava/lang/String; -1 -2
 print (Ljava/lang/Thread;II)V 0 38
 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; 8 34
---------
 printOrWait (IILart/ControlData;)V 6 41
From bottom
---------
 run ()V 0 31
---------
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 doTest ()V 61 33
 run ()V 0 31
---------
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21

################################
### Other thread (suspended) ###
################################
From top
---------
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 28
---------
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 28
---------
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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
---------
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
---------
 wait ()V 2 543
From bottom
---------
 run ()V 4 28
---------
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 28
---------
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26

###########################
### Other thread (live) ###
###########################
From top
---------
 printOrWait (IILart/ControlData;)V 45 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 62
---------
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 62
---------
 printOrWait (IILart/ControlData;)V 45 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; 8 34
---------
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
From bottom
---------
 run ()V 4 62
---------
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 62
---------
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26


########################################
### Other select threads (suspended) ###
########################################
---------
Test911

---------
ThreadListTraces Thread 0

---------
ThreadListTraces Thread 2

---------
ThreadListTraces Thread 4

---------
ThreadListTraces Thread 6

---------
ThreadListTraces Thread 8

---------
Test911
 getThreadListStackTraces ([Ljava/lang/Thread;I)[[Ljava/lang/Object; -1 -2
 printList ([Ljava/lang/Thread;I)V 0 68
 doTest ()V 112 54
 run ()V 36 49

---------
ThreadListTraces Thread 0
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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 (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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 (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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 (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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 (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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

---------
Test911
 getThreadListStackTraces ([Ljava/lang/Thread;I)[[Ljava/lang/Object; -1 -2
 printList ([Ljava/lang/Thread;I)V 0 68
 doTest ()V 117 56
 run ()V 36 49

---------
ThreadListTraces Thread 0
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 37

---------
ThreadListTraces Thread 2
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 37

---------
ThreadListTraces Thread 4
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 37

---------
ThreadListTraces Thread 6
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 37

---------
ThreadListTraces Thread 8
 wait (JI)V -1 -2
 wait (J)V 1 405
 wait ()V 2 543
 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; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 baz (IIILart/ControlData;)Ljava/lang/Object; 8 34
 bar (IIILart/ControlData;)J 0 26
 foo (IIILart/ControlData;)I 0 21
 run ()V 4 37


###################
### Same thread ###
###################
4
JVMTI_ERROR_ILLEGAL_ARGUMENT
[public static native java.lang.Object[] art.Frames.getFrameLocation(java.lang.Thread,int), ffffffff]
[public static void art.Frames.doTestSameThread(), 3e]
[public static void art.Frames.doTest() throws java.lang.Exception, 0]
[public void art.Test911$1.run(), 2c]
JVMTI_ERROR_NO_MORE_FRAMES

################################
### Other thread (suspended) ###
################################
20
JVMTI_ERROR_ILLEGAL_ARGUMENT
[public final native void java.lang.Object.wait(long,int) throws java.lang.InterruptedException, ffffffff]
[public final void java.lang.Object.wait(long) throws java.lang.InterruptedException, 1]
[public final void java.lang.Object.wait() throws java.lang.InterruptedException, 2]
[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), 8]
[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), 8]
[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), 8]
[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), 8]
[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

###########################
### Other thread (live) ###
###########################
17
JVMTI_ERROR_ILLEGAL_ARGUMENT
[private static void art.Recurse.printOrWait(int,int,art.ControlData), 2d]
[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), 8]
[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), 8]
[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), 8]
[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), 8]
[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
