public static /*Executable*/ Member lookupMethod(ExtendedStackTraceElement ste) { if (ste.getDeclaringClass() == null) return null; if (ste.getMethod() != null) return ste.getMethod(); for (final Method m : ste.getDeclaringClass().getDeclaredMethods()) { if (m.getName().equals(ste.getMethodName())) { final Instrumented i = getAnnotation(m, Instrumented.class); if (m.isSynthetic() || isWaiver(m.getDeclaringClass().getName(), m.getName()) || i != null && ste.getLineNumber() >= i.methodStart() && ste.getLineNumber() <= i.methodEnd()) return m; } } return null; }
private static void printTraceLine(StringBuilder stackTrace, ExtendedStackTraceElement ste) { final Member m = SuspendableHelper.lookupMethod(ste); stackTrace.append("\n\tat ").append(ste.getMethod() == null ? ste.toString(m) : ste.toString()); if (SuspendableHelper.isOptimized(m)) stackTrace.append(" (optimized)"); }
final Member callee = calleeSte.getMethod(); if (callee == null) { final String methodName = "." + calleeSte.getMethodName() + "(";