src/hotspot/share/memory/metaspaceShared.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Sdiff src/hotspot/share/memory

src/hotspot/share/memory/metaspaceShared.cpp

Print this page




1002 }
1003 
1004 // Populate the shared space.
1005 
1006 class VM_PopulateDumpSharedSpace: public VM_Operation {
1007 private:
1008   GrowableArray<MemRegion> *_closed_archive_heap_regions;
1009   GrowableArray<MemRegion> *_open_archive_heap_regions;
1010 
1011   void dump_java_heap_objects() NOT_CDS_JAVA_HEAP_RETURN;
1012   void dump_symbols();
1013   char* dump_read_only_tables();
1014   void print_region_stats();
1015   void print_heap_region_stats(GrowableArray<MemRegion> *heap_mem,
1016                                const char *name, const size_t total_size);
1017 public:
1018 
1019   VMOp_Type type() const { return VMOp_PopulateDumpSharedSpace; }
1020   void doit();   // outline because gdb sucks
1021   static void write_region(FileMapInfo* mapinfo, int region, DumpRegion* space, bool read_only,  bool allow_exec);

1022 }; // class VM_PopulateDumpSharedSpace
1023 
1024 class SortedSymbolClosure: public SymbolClosure {
1025   GrowableArray<Symbol*> _symbols;
1026   virtual void do_symbol(Symbol** sym) {
1027     assert((*sym)->is_permanent(), "archived symbols must be permanent");
1028     _symbols.append(*sym);
1029   }
1030   static int compare_symbols_by_address(Symbol** a, Symbol** b) {
1031     if (a[0] < b[0]) {
1032       return -1;
1033     } else if (a[0] == b[0]) {
1034       return 0;
1035     } else {
1036       return 1;
1037     }
1038   }
1039 
1040 public:
1041   SortedSymbolClosure() {




1002 }
1003 
1004 // Populate the shared space.
1005 
1006 class VM_PopulateDumpSharedSpace: public VM_Operation {
1007 private:
1008   GrowableArray<MemRegion> *_closed_archive_heap_regions;
1009   GrowableArray<MemRegion> *_open_archive_heap_regions;
1010 
1011   void dump_java_heap_objects() NOT_CDS_JAVA_HEAP_RETURN;
1012   void dump_symbols();
1013   char* dump_read_only_tables();
1014   void print_region_stats();
1015   void print_heap_region_stats(GrowableArray<MemRegion> *heap_mem,
1016                                const char *name, const size_t total_size);
1017 public:
1018 
1019   VMOp_Type type() const { return VMOp_PopulateDumpSharedSpace; }
1020   void doit();   // outline because gdb sucks
1021   static void write_region(FileMapInfo* mapinfo, int region, DumpRegion* space, bool read_only,  bool allow_exec);
1022   bool allow_nested_vm_operations() const { return true; }
1023 }; // class VM_PopulateDumpSharedSpace
1024 
1025 class SortedSymbolClosure: public SymbolClosure {
1026   GrowableArray<Symbol*> _symbols;
1027   virtual void do_symbol(Symbol** sym) {
1028     assert((*sym)->is_permanent(), "archived symbols must be permanent");
1029     _symbols.append(*sym);
1030   }
1031   static int compare_symbols_by_address(Symbol** a, Symbol** b) {
1032     if (a[0] < b[0]) {
1033       return -1;
1034     } else if (a[0] == b[0]) {
1035       return 0;
1036     } else {
1037       return 1;
1038     }
1039   }
1040 
1041 public:
1042   SortedSymbolClosure() {


src/hotspot/share/memory/metaspaceShared.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File