• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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