Package org.objectweb.asm.util

Examples of org.objectweb.asm.util.TraceClassVisitor


        log(LogLevel.INFO, "TRANSFORM: %s %s", className, (db.getClassEntry(className) != null && db.getClassEntry(className).requiresInstrumentation()) ? "request" : "");
        final ClassWriter cw = new DBClassWriter(db, r);
        ClassVisitor cv = (check && EXAMINED_CLASS == null) ? new CheckClassAdapter(cw) : cw;

        if (EXAMINED_CLASS != null && className.startsWith(EXAMINED_CLASS))
            cv = new TraceClassVisitor(cv, new PrintWriter(System.out));

        final InstrumentClass ic = new InstrumentClass(cv, db, false);
        r.accept(ic, ClassReader.SKIP_FRAMES);
        final byte[] transformed = cw.toByteArray();

        if (EXAMINED_CLASS != null) {
            if (className.startsWith(EXAMINED_CLASS)) {
                try (OutputStream os = new FileOutputStream(className.replace('/', '.') + ".class")) {
                    os.write(transformed);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }

            if (check) {
                ClassReader r2 = new ClassReader(transformed);
                ClassVisitor cv2 = new CheckClassAdapter(new TraceClassVisitor(null), true);
                r2.accept(cv2, 0);
            }
        }

        return transformed;
View Full Code Here


    String classAsPath = className.replace('.', '/') + ".class";
    InputStream asStream = c.getClassLoader().getResourceAsStream("wyvern/targets/TargetManager.class");
    ClassReader cr = new ClassReader(c.getCanonicalName());

    ASMifier ifier = new ASMifier();
    cr.accept(new TraceClassVisitor(null, ifier, new PrintWriter(System.out)),0);
  }
View Full Code Here

    }

    public static void dumpClass(String className, byte[] data) {
        System.out.println("DUMP OF CLASS: " + className);
        ClassReader cr = new ClassReader(data);
        ClassVisitor cv = new TraceClassVisitor(null, new Textifier(), new PrintWriter(System.out));
        cr.accept(cv, ClassReader.SKIP_FRAMES);
        System.out.println("=================");
    }
View Full Code Here

                            file = new File(new File(debugLocation), dirs + ".asm");
                            out = new BufferedOutputStream(new FileOutputStream(file));
                            try {
                                ClassReader cr = new ClassReader(b);
                                PrintWriter pw = new PrintWriter(new OutputStreamWriter(out));
                                TraceClassVisitor tcv = new TraceClassVisitor(null, pw);
                                cr.accept(tcv, 0);
                                pw.flush();
                            } finally {
                                out.close();
                            }
View Full Code Here

  private static final String  HEXES  = "0123456789ABCDEF";
 
  public static String getCheckSumForMethod(ClassReader classReader, String methodName) {
        StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    TraceClassVisitor traceClassVisitor = new TraceClassVisitor(null, new MethodTextifier(), printWriter);
    FilterClassVisitor myClassVisitor = new FilterClassVisitor(traceClassVisitor, methodName);
    classReader.accept(myClassVisitor, ClassReader.SKIP_DEBUG);
    BufferedReader reader = new BufferedReader(new StringReader(stringWriter.toString()));
    StringBuilder builder = new StringBuilder();
    String line;
View Full Code Here

    }

    public static void dumpClass(String className, byte[] data) {
        System.out.println("DUMP OF CLASS: " + className);
        ClassReader cr = new ClassReader(data);
        ClassVisitor cv = new TraceClassVisitor(null, new Textifier(), new PrintWriter(System.out));
        cr.accept(cv, ClassReader.SKIP_FRAMES);
        System.out.println("=================");
    }
View Full Code Here

    private byte[] instrumentClass(String className, ClassReader r) {
        final ClassWriter cw = new DBClassWriter(db, r);
        ClassVisitor cv = (check && EXAMINED_CLASS == null) ? new CheckClassAdapter(cw) : cw;

        if (EXAMINED_CLASS != null && className.startsWith(EXAMINED_CLASS))
            cv = new TraceClassVisitor(cv, new PrintWriter(System.out));

        final InstrumentClass ic = new InstrumentClass(cv, db, false);
        r.accept(ic, ClassReader.SKIP_FRAMES);
        final byte[] transformed = cw.toByteArray();

        if (EXAMINED_CLASS != null) {
            if (className.startsWith(EXAMINED_CLASS)) {
                try (OutputStream os = new FileOutputStream(className.replace('/', '.') + ".class")) {
                    os.write(transformed);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }

            if (check) {
                ClassReader r2 = new ClassReader(transformed);
                ClassVisitor cv2 = new CheckClassAdapter(new TraceClassVisitor(null), true);
                r2.accept(cv2, 0);
            }
        }

        return transformed;
View Full Code Here

    }

    if(!error.isEmpty() || e != null){
      StringWriter sw2 = new StringWriter();
      PrintWriter pw2 = new PrintWriter(sw2);
      TraceClassVisitor v = new TraceClassVisitor(pw2);
      node.accept(v);
      if(e != null){
        throw new RuntimeException("Failure validating class.  ByteCode: \n" + sw2.toString() + "\n\n====ERRROR====\n" + error, e);
      }else{
        throw new RuntimeException("Failure validating class.  ByteCode: \n" + sw2.toString() + "\n\n====ERRROR====\n" + error);
View Full Code Here

            }
        }
        if (DUMP_BYTE_CODE_RAW) {
            for (byte[] byteCode : byteCodes.values()) {
                ClassReader classReader = new ClassReader(byteCode);
                classReader.accept(new TraceClassVisitor(new PrintWriter(System.err)), ClassReader.SKIP_FRAMES);
            }
        }
        Map<String, Class<?>> classes = classLoader.defineClasses(byteCodes);
        generatedClasses.addAndGet(classes.size());
        return classes;
View Full Code Here

            cv = new ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS);
            cw = cv;
        } else {
            cv = new ClassWriter(ClassWriter.COMPUTE_FRAMES|ClassWriter.COMPUTE_MAXS);
            PrintWriter pw = new PrintWriter(System.out);
            cw = new TraceClassVisitor(cv, pw);
        }
        FieldVisitor fv;
        MethodVisitor mv;
        AnnotationVisitor av0;
View Full Code Here

TOP

Related Classes of org.objectweb.asm.util.TraceClassVisitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.