1e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light/* 2e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Copyright (C) 2017 The Android Open Source Project 3e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * 4e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Licensed under the Apache License, Version 2.0 (the "License"); 5e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * you may not use this file except in compliance with the License. 6e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * You may obtain a copy of the License at 7e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * 8e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * http://www.apache.org/licenses/LICENSE-2.0 9e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * 10e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * Unless required by applicable law or agreed to in writing, software 11e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * distributed under the License is distributed on an "AS IS" BASIS, 12e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * See the License for the specific language governing permissions and 14e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light * limitations under the License. 15e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light */ 16e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 17e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <pthread.h> 18e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 19e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <cstdio> 20e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <iostream> 21e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include <vector> 22e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 23e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "android-base/logging.h" 24e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jni.h" 25e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jvmti.h" 26e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 27e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "scoped_local_ref.h" 28e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "scoped_primitive_array.h" 29e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 30e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light// Test infrastructure 31e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "jvmti_helper.h" 32e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light#include "test_env.h" 33e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 34e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightnamespace art { 35e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightnamespace Test1926FramePopMissed { 36e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 37e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightextern "C" JNIEXPORT void JNICALL Java_art_Test1926_disableFramePop( 38e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JNIEnv* env, jclass, jthread thr) { 39e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JvmtiErrorToException(env, 40e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light jvmti_env, 41e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light jvmti_env->SetEventNotificationMode( 42e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JVMTI_DISABLE, JVMTI_EVENT_FRAME_POP, thr)); 43e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light} 44e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 45e814f9d09c0fb1b678e610780d11ce3577db3599Alex Lightextern "C" JNIEXPORT void JNICALL Java_art_Test1926_reenableFramePop( 46e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JNIEnv* env, jclass, jthread thr) { 47e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JvmtiErrorToException(env, 48e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light jvmti_env, 49e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light jvmti_env->SetEventNotificationMode( 50e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light JVMTI_ENABLE, JVMTI_EVENT_FRAME_POP, thr)); 51e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light} 52e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 53e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light} // namespace Test1926FramePopMissed 54e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light} // namespace art 55e814f9d09c0fb1b678e610780d11ce3577db3599Alex Light 56