List of usage examples for org.objectweb.asm.util Printer print
public void print(final PrintWriter printWriter)
From source file:com.github.anba.es6draft.compiler.assembler.Code.java
License:Open Source License
private static String toByteCode(ClassVisitor cv, Printer p, byte[] bytes) { new ClassReader(bytes).accept(cv, ClassReader.EXPAND_FRAMES); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); p.print(pw); pw.flush();/* w ww. jav a 2s .c o m*/ return sw.toString(); }
From source file:com.github.fge.grappa.transform.AsmTestUtils.java
License:Apache License
public static String getMethodInstructionList(MethodNode methodNode) { Preconditions.checkNotNull(methodNode, "methodNode"); Printer printer = new NonMaxTextifier(); TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer); methodNode.accept(traceMethodVisitor); StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printer.print(printWriter); printWriter.flush();//from w w w. ja va 2s .co m String[] lines = PATTERN.split(stringWriter.toString()); int lineNr = 0; for (int i = 0; i < lines.length; i++) { if (!lines[i].startsWith(" @")) { lines[i] = String.format("%2d %s", lineNr++, lines[i]); } } return "Method '" + methodNode.name + "':\n" + NEWLINE.join(lines) + '\n'; }
From source file:com.github.fge.grappa.transform.AsmTestUtils.java
License:Apache License
public static void assertTraceDumpEquality(MethodNode method, String traceDump) throws Exception { Preconditions.checkNotNull(method, "method"); Printer printer = new NonMaxTextifier(); TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer); // MethodAdapter checkMethodAdapter = new MethodAdapter(traceMethodVisitor); MethodVisitor checkMethodAdapter = new CheckMethodAdapter(traceMethodVisitor); method.accept(checkMethodAdapter);/*from w w w .j ava2 s.c o m*/ StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printer.print(printWriter); printWriter.flush(); assertEquals(stringWriter.toString(), traceDump); }
From source file:com.lodgon.parboiled.transform.AsmTestUtils.java
License:Apache License
public static String getMethodInstructionList(MethodNode methodNode) { checkArgNotNull(methodNode, "methodNode"); Printer printer = new NonMaxTextifier(); TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer); methodNode.accept(traceMethodVisitor); StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printer.print(printWriter); printWriter.flush();/*from w w w .j a v a 2 s.c o m*/ String[] lines = stringWriter.toString().split("\n"); int lineNr = 0; for (int i = 0; i < lines.length; i++) { if (!lines[i].startsWith(" @")) { lines[i] = String.format("%2d %s", lineNr++, lines[i]); } } return "Method '" + methodNode.name + "':\n" + StringUtils.join(lines, "\n") + '\n'; }
From source file:com.lodgon.parboiled.transform.AsmTestUtils.java
License:Apache License
public static void assertTraceDumpEquality(MethodNode method, String traceDump) throws Exception { checkArgNotNull(method, "method"); Printer printer = new NonMaxTextifier(); TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer); // MethodAdapter checkMethodAdapter = new MethodAdapter(traceMethodVisitor); MethodVisitor checkMethodAdapter = new CheckMethodAdapter(traceMethodVisitor); method.accept(checkMethodAdapter);/*w ww. j a v a 2s. co m*/ StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printer.print(printWriter); printWriter.flush(); assertEquals(stringWriter.toString(), traceDump); }
From source file:com.triage.bytecodemaster.BaseWeaverTest.java
protected String printNode(AbstractInsnNode insnNode) { /* Create a "printer" that renders text versions of instructions */ Printer printer = new Textifier(); TraceMethodVisitor methodPrinter = new TraceMethodVisitor(printer); /* render the instruction as a string and add it to printer's internal buffer */ insnNode.accept(methodPrinter);//from w ww .j a v a2 s .c o m /* convert printer's internal buffer to string and clear the buffer (so we can reuse it later) */ StringWriter sw = new StringWriter(); printer.print(new PrintWriter(sw)); printer.getText().clear(); return sw.toString(); }
From source file:net.malisis.core.asm.AsmUtils.java
License:Open Source License
public static String getMethodNodeAsString(MethodNode methodNode) { Printer printer = new Textifier(); TraceMethodVisitor methodPrinter = new TraceMethodVisitor(printer); methodNode.accept(methodPrinter);/* w ww . j ava 2s . c o m*/ StringWriter sw = new StringWriter(); printer.print(new PrintWriter(sw)); printer.getText().clear(); return sw.toString(); }
From source file:org.brutusin.instrumentation.utils.Helper.java
License:Apache License
public static void viewByteCode(byte[] bytecode) { ClassReader cr = new ClassReader(bytecode); ClassNode cn = new ClassNode(); cr.accept(cn, 0);/* w w w .j a va 2 s .c o m*/ final List<MethodNode> mns = cn.methods; Printer printer = new Textifier(); TraceMethodVisitor mp = new TraceMethodVisitor(printer); for (MethodNode mn : mns) { InsnList inList = mn.instructions; System.out.println(mn.name); for (int i = 0; i < inList.size(); i++) { inList.get(i).accept(mp); StringWriter sw = new StringWriter(); printer.print(new PrintWriter(sw)); printer.getText().clear(); System.out.print(sw.toString()); } } }
From source file:vazkii.quark.base.asm.ClassTransformer.java
License:Creative Commons License
private static String getNodeString(AbstractInsnNode node) { Printer printer = new Textifier(); TraceMethodVisitor visitor = new TraceMethodVisitor(printer); node.accept(visitor);//from w w w . j a va2 s . c o m StringWriter sw = new StringWriter(); printer.print(new PrintWriter(sw)); printer.getText().clear(); return sw.toString().replaceAll("\n", "").trim(); }