You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

framedump.java 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. import javassist.ClassPool;
  18. import javassist.CtClass;
  19. import javassist.bytecode.analysis.FramePrinter;
  20. /**
  21. * framedump is a tool for viewing a merged combination of the instructions and frame state
  22. * of all methods in a class.
  23. *
  24. * <p>For example,
  25. * <ul><pre>% java javassist.tools.framedump foo.class</pre></ul>
  26. */
  27. public class framedump {
  28. private framedump() {}
  29. /**
  30. * Main method.
  31. *
  32. * @param args <code>args[0]</code> is the class file name.
  33. */
  34. public static void main(String[] args) throws Exception {
  35. if (args.length != 1) {
  36. System.err.println("Usage: java javassist.tools.framedump <fully-qualified class name>");
  37. return;
  38. }
  39. ClassPool pool = ClassPool.getDefault();
  40. CtClass clazz = pool.get(args[0]);
  41. System.out.println("Frame Dump of " + clazz.getName() + ":");
  42. FramePrinter.print(clazz, System.out);
  43. }
  44. }