< prev index next >

src/hotspot/share/services/diagnosticCommand.hpp

Print this page
@@ -393,10 +393,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 flat 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", nullptr};
+     return p;
+   }
+   static int num_arguments();
+   virtual void execute(DCmdSource source, TRAPS);
+ };
+ 
  #if INCLUDE_CDS
  class DumpSharedArchiveDCmd: public DCmdWithParser {
  protected:
    DCmdArgument<char*> _suboption;   // option of VM.cds
    DCmdArgument<char*> _filename;    // file name, optional
< prev index next >