1/* 2 * Javassist, a Java-bytecode translator toolkit. 3 * Copyright (C) 1999-2007 Shigeru Chiba, and others. 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 * 10 * Software distributed under the License is distributed on an "AS IS" basis, 11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 12 * for the specific language governing rights and limitations under the 13 * License. 14 */ 15package javassist.tools; 16 17import javassist.ClassPool; 18import javassist.CtClass; 19import javassist.bytecode.analysis.FramePrinter; 20 21/** 22 * framedump is a tool for viewing a merged combination of the instructions and frame state 23 * of all methods in a class. 24 * 25 * <p>For example, 26 * <ul><pre>% java javassist.tools.framedump foo.class</pre></ul> 27 */ 28public class framedump { 29 private framedump() {} 30 31 /** 32 * Main method. 33 * 34 * @param args <code>args[0]</code> is the class file name. 35 */ 36 public static void main(String[] args) throws Exception { 37 if (args.length != 1) { 38 System.err.println("Usage: java javassist.tools.framedump <class file name>"); 39 return; 40 } 41 42 ClassPool pool = ClassPool.getDefault(); 43 CtClass clazz = pool.get(args[0]); 44 System.out.println("Frame Dump of " + clazz.getName() + ":"); 45 FramePrinter.print(clazz, System.out); 46 } 47} 48