47 static jboolean wasFramePop = JNI_FALSE; |
47 static jboolean wasFramePop = JNI_FALSE; |
48 static jthread testedThread; |
48 static jthread testedThread; |
49 static jmethodID mid_checkPoint, mid_chain4; |
49 static jmethodID mid_checkPoint, mid_chain4; |
50 static jbyteArray classBytes; |
50 static jbyteArray classBytes; |
51 static frame_info frames[] = { |
51 static frame_info frames[] = { |
52 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "checkPoint", "()V"}, |
52 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "checkPoint", "()V" }, |
53 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain5", "()V"}, |
53 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain5", "()V" }, |
54 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain4", "()V"}, |
54 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain4", "()V" }, |
55 {"Lnsk/jvmti/GetStackTrace/getstacktr008;", "nativeChain", "()V"}, |
55 { "Lnsk/jvmti/GetStackTrace/getstacktr008;", "nativeChain", "()V" }, |
56 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain3", "()V"}, |
56 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain3", "()V" }, |
57 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain2", "()V"}, |
57 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain2", "()V" }, |
58 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain1", "()V"}, |
58 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "chain1", "()V" }, |
59 {"Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "run", "()V"}, |
59 { "Lnsk/jvmti/GetStackTrace/getstacktr008$TestThread;", "run", "()V" }, |
60 }; |
60 }; |
61 |
61 |
62 #define NUMBER_OF_STACK_FRAMES ((int) (sizeof(frames)/sizeof(frame_info))) |
62 #define NUMBER_OF_STACK_FRAMES ((int) (sizeof(frames)/sizeof(frame_info))) |
63 |
63 |
64 void check(jvmtiEnv *jvmti_env, jthread thr, int offset, const char *note) { |
64 void check(jvmtiEnv *jvmti_env, jthread thr, int offset, const char *note) { |