Lines Matching refs:method
74 Method* method; /* method we're associated with */
224 static bool dvmBreakpointSetAdd(BreakpointSet* pSet, Method* method,
228 const u2* addr = method->insns + instrOffset;
249 pBreak->method = method;
258 * If the method has not been verified, we do NOT insert the
269 if (dvmIsClassVerified(method->clazz)) {
271 method->clazz->descriptor, addr);
274 *addr, method->clazz->descriptor, method->name,
277 dvmDexChangeDex1(method->clazz->pDvmDex, (u1*)addr,
282 method->clazz->descriptor, addr);
305 static void dvmBreakpointSetRemove(BreakpointSet* pSet, Method* method,
308 const u2* addr = method->insns + instrOffset;
315 method->clazz->descriptor, method->name, instrOffset);
319 method->clazz->descriptor, method->name, instrOffset);
332 dvmDexChangeDex1(method->clazz->pDvmDex, (u1*)addr,
363 if (pBreak->method->clazz == clazz) {
365 * The breakpoint is associated with a method in this class.
372 const Method* method = pBreak->method;
374 *pBreak->addr, method->clazz->descriptor,
375 method->name, pBreak->addr - method->insns);
419 void dvmAddBreakAddr(Method* method, unsigned int instrOffset)
424 dvmBreakpointSetAdd(pSet, method, instrOffset);
441 void dvmClearBreakAddr(Method* method, unsigned int instrOffset)
446 dvmBreakpointSetRemove(pSet, method, instrOffset);
479 * We don't want to modify the bytecode of a method before the verifier
531 * We may be stepping into or over method calls, or running until we
532 * return from the current method. To make this work we need to track
533 * the current line, current method, and current stack depth. We need
539 * an interpreted method, everything we need is in the current frame. If
540 * we're in a native method, possibly with some extra JNI frames pushed
541 * on by PushLocalFrame, we want to use the topmost native method.
548 const Method* method;
551 method = saveArea->method;
553 if (!dvmIsBreakFrame(fp) && !dvmIsNativeMethod(method))
568 LOGV("##### init step while in native method\n");
571 assert(dvmIsNativeMethod(SAVEAREA_FROM_FP(fp)->method));
579 pCtrl->method = saveArea->method;
586 if (dvmIsNativeMethod(pCtrl->method)) {
589 pCtrl->line = dvmLineNumFromPC(saveArea->method,
590 saveArea->xtra.currentPc - saveArea->method->insns);
592 = dvmAddressSetForLine(saveArea->method, pCtrl->line);
598 pCtrl->thread, pCtrl->method, pCtrl->method->name,
626 * Recover the "this" pointer from the current interpreted method. "this"
632 * fairly common to have a virtual method that doesn't use its "this"
637 * in JDWP that is expected to work for any non-native non-static method.
642 Object* dvmGetThisPtr(const Method* method, const u4* fp)
644 if (dvmIsStaticMethod(method))
646 return (Object*)fp[method->registersSize - method->insSize];
658 void dvmInterpCheckTrackedRefs(Thread* self, const Method* method,
672 desc = dexProtoCopyMethodDescriptor(&method->prototype);
673 LOGE(" current method is %s.%s %s\n", method->clazz->descriptor,
674 method->name, desc);
696 void dvmDumpRegs(const Method* method, const u4* framePtr, bool inOnly)
700 localCount = method->registersSize - method->insSize;
703 for (i = method->registersSize-1; i >= 0; i--) {
715 DexFile* pDexFile = method->clazz->pDexFile;
716 const DexCode* pDexCode = dvmGetMethodCode(method);
981 * Find the concrete method that corresponds to "methodIdx". The code in
982 * "method" is executing invoke-method with "thisClass" as its first argument.
986 Method* dvmInterpFindInterfaceMethod(ClassObject* thisClass, u4 methodIdx,
987 const Method* method, DvmDex* methodClassDex)
989 Method* absMethod;
990 Method* methodToCall;
994 * Resolve the method. This gives us the abstract method from the
999 absMethod = dvmResolveInterfaceMethod(method->clazz, methodIdx);
1001 LOGV("+ unknown method\n");
1012 * the method's entry. The value there is the offset into our
1013 * vtable of the actual method to execute.
1042 "interface method not implemented");
1066 static char* classNameFromIndex(const Method* method, int ref,
1070 const DvmDex* pDvmDex = method->clazz->pDvmDex;
1077 /* get class ID from method ID */
1090 char* dotFromName = dvmDescriptorToDot(method->clazz->descriptor);
1102 static char* fieldNameFromIndex(const Method* method, int ref,
1106 const DvmDex* pDvmDex = method->clazz->pDvmDex;
1124 char* dotFromName = dvmDescriptorToDot(method->clazz->descriptor);
1135 static char* methodNameFromIndex(const Method* method, int ref,
1139 const DvmDex* pDvmDex = method->clazz->pDvmDex;
1157 char* dotFromName = dvmDescriptorToDot(method->clazz->descriptor);
1158 char* desc = dexProtoCopyMethodDescriptor(&method->prototype);
1160 "tried to access method %s.%s:%s from class %s",
1181 void dvmThrowVerificationError(const Method* method, int kind, int ref)
1192 msg = classNameFromIndex(method, ref, refType, 0);
1196 msg = fieldNameFromIndex(method, ref, refType, 0);
1200 msg = methodNameFromIndex(method, ref, refType, 0);
1204 msg = classNameFromIndex(method, ref, refType,
1209 msg = fieldNameFromIndex(method, ref, refType,
1214 msg = methodNameFromIndex(method, ref, refType,
1219 msg = classNameFromIndex(method, ref, refType, 0);
1223 msg = classNameFromIndex(method, ref, refType, 0);
1246 * This begins executing code at the start of "method". On exit, "pResult"
1247 * holds the return value of the method (or, if "method" returns NULL, it
1250 * The interpreted stack frame, which holds the method arguments, has
1253 void dvmInterpret(Thread* self, const Method* method, JValue* pResult)
1322 interpState.method = method;
1324 interpState.pc = method->insns;
1332 assert(!dvmIsNativeMethod(method));
1338 if (method->clazz->status < CLASS_INITIALIZING ||
1339 method->clazz->status == CLASS_ERROR)
1342 method->clazz->descriptor, method->clazz->status);