public void toWriter(Writer writer, int flags){ PrintWriter printWriter = new PrintWriter(writer); TraceClassVisitor traceClassVisitor = new TraceClassVisitor(null, printWriter); classReader.accept(traceClassVisitor, flags); }
private static void printClassBytes(byte[] byteCode) { if (DEBUG) { TraceClassVisitor visitor = new TraceClassVisitor(new PrintWriter(System.out)); new ClassReader(byteCode).accept(visitor, 0); } }
/** * Outputs the bytecode generated as a textual representation * * @param pw * The PrintWriter the textual representation is written to */ public void generateTextualRepresentation(PrintWriter pw) { cv = new TraceClassVisitor(pw); generateByteCode(); }
protected String asmify(byte[] bytecode) { if (bytecode == null) { return ""; } StringWriter sw = new StringWriter(); TraceClassVisitor acv = new TraceClassVisitor(new PrintWriter(sw)); new org.objectweb.asm.ClassReader(bytecode).accept(acv, 0); return sw.toString(); }
private ClassNode loadClass(String name) { return Try.apply(() -> { String cname = name.replace("/", "."); ClassNode node = cache.get(cname); if (node == null) { String rname = cname.replace(".", "/") + ".class"; try (InputStream in = loader.getResourceAsStream(rname)) { if (in == null) { throw new FileNotFoundException(rname + " using " + loader); } ClassReader reader = new ClassReader(ByteStreams.toByteArray(in)); node = new ClassNode(); reader.accept(node, 0); cache.put(cname, node); if (log.isDebugEnabled()) { log.info("Source: {}; Class: {}", node.sourceFile, node.name); reader.accept( new TraceClassVisitor(null, new ASMifier(), new PrintWriter(writer(log, name))), 0); } } } return node; }).get(); }
if (showTransformedClassFolder != null) { tracePrintWriter = new PrintWriter(new File(showTransformedClassFolder, className.replace('/', '_') + ".asm")); traceClassVisitor = new TraceClassVisitor(classWriter, tracePrintWriter);
private void writeBytecodeToDisk(final byte[] clazz, Path folder) throws IOException { final ClassReader reader = new ClassReader(clazz); final CharArrayWriter buffer = new CharArrayWriter(); reader.accept(new TraceClassVisitor(null, new Textifier(), new PrintWriter( buffer)), ClassReader.EXPAND_FRAMES); final Path outFile = folder.resolve(this.currentClass.asJavaName() + ".txt"); Files.write(outFile, Collections.singleton(buffer.toString()), StandardCharsets.UTF_8, StandardOpenOption.CREATE); }
@Override public String toString() { final StringWriter writer = new StringWriter(); this.rawNode.accept(new TraceClassVisitor(null, new Textifier(), new PrintWriter( writer))); return writer.toString(); }
protected void printClass(final byte[] bs) { final ClassReader reader = new ClassReader(bs); reader.accept(new TraceClassVisitor(null, new ASMifier(), new PrintWriter( System.out)), ClassReader.EXPAND_FRAMES); }
protected void printMutant(final Mutant mutant) { final ClassReader reader = new ClassReader(mutant.getBytes()); reader.accept(new TraceClassVisitor(null, new ASMifier(), new PrintWriter( System.out)), ClassReader.EXPAND_FRAMES); }
private String asmDump(InputStream inputStream) throws IOException { ClassReader reader = new ClassReader(inputStream); StringWriter writer = new StringWriter(); reader.accept(new TraceClassVisitor(new PrintWriter(writer)), 0); String code = writer.toString().trim(); return code; }
public void dumpClass(PrintStream out) { TraceClassVisitor tcv = new TraceClassVisitor(new PrintWriter(out)); new ClassReader(classWriter.toByteArray()).accept(tcv, 0); tcv.print(new PrintWriter(out)); }
private static void printBytecode(byte[] bytecode) { StringWriter sw = new StringWriter(); ClassVisitor tracer = new TraceClassVisitor(new ClassWriter(0), new PrintWriter(sw)); new ClassReader(bytecode).accept(tracer, 0); String dump = sw.toString(); LWJGLUtil.log(dump); }
@Override public String toString() { StringWriter sw = new StringWriter(); new ClassReader(data) .accept(new TraceClassVisitor(null, new Textifier(), new PrintWriter(sw)), 0); return sw.toString(); } }
private 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("================="); }
@JRubyMethod(name = "inspect_bytecode") public static IRubyObject compiled_script_inspect_bytecode(IRubyObject recv) { StringWriter sw = new StringWriter(); ClassReader cr = new ClassReader((byte[])org.jruby.nb.javasupport.JavaUtil.convertRubyToJava(recv.getInstanceVariables().fastGetInstanceVariable("@code"),byte[].class)); TraceClassVisitor cv = new TraceClassVisitor(new PrintWriter(sw)); cr.accept(cv, ClassReader.SKIP_DEBUG); return recv.getRuntime().newString(sw.toString()); } }
public static void traceBytecode(byte[] bytecode) { ClassReader reader = new ClassReader(bytecode); TraceClassVisitor tracer = new TraceClassVisitor(new PrintWriter(System.out)); reader.accept(tracer, 0); } }
public static String getClassDump(final byte[] code) { final StringWriter stringWriter = new StringWriter(); final PrintWriter printWriter = new PrintWriter(stringWriter); final TraceClassVisitor traceClassVisitor = new TraceClassVisitor(printWriter); final ClassVisitor checkClassAdapter = new ClassVisitor(Opcodes.ASM5, traceClassVisitor) {}; //ClassAdapter checkClassAdapter = new CheckClassAdapter(traceClassVisitor); final ClassReader classReader; classReader = new ClassReader(code); classReader.accept(checkClassAdapter, 0); printWriter.flush(); return stringWriter.toString(); }
private String asmify(byte[] bytecode) { StringWriter sw = new StringWriter(); TraceClassVisitor acv = new TraceClassVisitor(new PrintWriter(sw)); new org.objectweb.asm.ClassReader(bytecode).accept(acv, ClassReader.SKIP_FRAMES); return sw.toString(); }
protected String asmify(byte[] bytecode) { StringWriter sw = new StringWriter(); TraceClassVisitor acv = new TraceClassVisitor(new PrintWriter(sw)); new org.objectweb.asm.ClassReader(bytecode).accept(acv, ClassReader.SKIP_FRAMES); return sw.toString(); }