< prev index next >

src/hotspot/share/services/diagnosticCommand.hpp

Print this page
*** 384,10 ***
--- 384,35 ---
      return p;
    }
    virtual void execute(DCmdSource source, TRAPS);
  };
  
+ class PrintClassLayoutDCmd : public DCmdWithParser {
+ protected:
+   DCmdArgument<char*> _classname; // lass name whose layout should be printed.
+ public:
+   PrintClassLayoutDCmd(outputStream* output, bool heap);
+   static const char* name() {
+     return "VM.class_print_layout";
+   }
+   static const char* description() {
+     return "Print the layout of an instance of a class, including inlined fields. "
+            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
+            "or \"null\" if loaded by the bootstrap class loader.";
+   }
+   static const char* impact() {
+       return "Medium: Depends on number of loaded classes.";
+   }
+   static const JavaPermission permission() {
+     JavaPermission p = {"java.lang.management.ManagementPermission",
+                         "monitor", NULL};
+     return p;
+   }
+   static int num_arguments();
+   virtual void execute(DCmdSource source, TRAPS);
+ };
+ 
  class TouchedMethodsDCmd : public DCmd {
  public:
    TouchedMethodsDCmd(outputStream* output, bool heap) : DCmd(output, heap) {}
    static const char* name() {
      return "VM.print_touched_methods";
< prev index next >