1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /* 18 * Dalvik interpreter public definitions. 19 */ 20 #ifndef _DALVIK_INTERP_INTERP 21 #define _DALVIK_INTERP_INTERP 22 23 /* 24 * Interpreter entry point. Call here after setting up the interpreted 25 * stack (most code will want to get here via dvmCallMethod().) 26 */ 27 void dvmInterpret(Thread* thread, const Method* method, JValue* pResult); 28 29 /* 30 * Throw an exception for a problem detected by the verifier. 31 * 32 * This is called from the handler for the throw-verification-error 33 * instruction. "method" is the method currently being executed. 34 */ 35 void dvmThrowVerificationError(const Method* method, int kind, int ref); 36 37 /* 38 * One-time initialization and shutdown. 39 */ 40 bool dvmBreakpointStartup(void); 41 void dvmBreakpointShutdown(void); 42 43 /* 44 * Breakpoint implementation. 45 */ 46 void dvmInitBreakpoints(); 47 void dvmAddBreakAddr(Method* method, unsigned int instrOffset); 48 void dvmClearBreakAddr(Method* method, unsigned int instrOffset); 49 bool dvmAddSingleStep(Thread* thread, int size, int depth); 50 void dvmClearSingleStep(Thread* thread); 51 52 #ifdef WITH_DEBUGGER 53 /* 54 * Recover the opcode that was replaced by a breakpoint. 55 */ 56 u1 dvmGetOriginalOpCode(const u2* addr); 57 58 /* 59 * Flush any breakpoints associated with methods in "clazz". 60 */ 61 void dvmFlushBreakpoints(ClassObject* clazz); 62 #endif 63 64 #endif /*_DALVIK_INTERP_INTERP*/ 65