1 /* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved. 4 * 5 * The contents of this file are subject to the Mozilla Public License Version 6 * 1.1 (the "License"); you may not use this file except in compliance with 7 * the License. Alternatively, the contents of this file may be used under 8 * the terms of the GNU Lesser General Public License Version 2.1 or later, 9 * or the Apache License Version 2.0. 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 */ 16 package javassist.tools; 17 18 import javassist.ClassPool; 19 import javassist.CtClass; 20 import javassist.bytecode.analysis.FramePrinter; 21 22 /** 23 * framedump is a tool for viewing a merged combination of the instructions and frame state 24 * of all methods in a class. 25 * 26 * <p>For example, 27 * <pre>% java javassist.tools.framedump foo.class</pre> 28 */ 29 public class framedump { framedump()30 private framedump() {} 31 32 /** 33 * Main method. 34 * 35 * @param args <code>args[0]</code> is the class file name. 36 */ main(String[] args)37 public static void main(String[] args) throws Exception { 38 if (args.length != 1) { 39 System.err.println("Usage: java javassist.tools.framedump <fully-qualified class name>"); 40 return; 41 } 42 43 ClassPool pool = ClassPool.getDefault(); 44 CtClass clazz = pool.get(args[0]); 45 System.out.println("Frame Dump of " + clazz.getName() + ":"); 46 FramePrinter.print(clazz, System.out); 47 } 48 } 49