57 //
58 // You can also print the map of a cache without executing the application by using the
59 // --version flag:
60 // java -XX:AOTCache=app.aot -Xlog:aot+map*=trace --version
61 //
62 // Because the output can be large, it's best to save it to a file
63 // java -XX:AOTCache=app.aot -Xlog:aot+map*=trace:file=aot.map:none:filesize=0 --version
64 class AOTMapLogger : AllStatic {
65 struct ArchivedObjInfo {
66 address _src_addr;
67 address _buffered_addr;
68 address _requested_addr;
69 int _bytes;
70 MetaspaceClosureType _type;
71 };
72
73 public:
74 // FakeOop and subtypes
75 class FakeOop;
76 class FakeMirror;
77 class FakeObjArray;
78 class FakeString;
79 class FakeTypeArray;
80
81 #if INCLUDE_CDS_JAVA_HEAP
82 struct OopData {
83 address _buffered_addr;
84 address _requested_addr;
85 intptr_t _target_location;
86 uint32_t _narrow_location;
87 oopDesc* _raw_oop;
88 Klass* _klass;
89 size_t _size;
90 bool _is_root_segment;
91 };
92
93 class OopDataIterator : public CHeapObj<mtClassShared> {
94 protected:
95 OopData null_data() {
96 return { nullptr,
97 nullptr,
|
57 //
58 // You can also print the map of a cache without executing the application by using the
59 // --version flag:
60 // java -XX:AOTCache=app.aot -Xlog:aot+map*=trace --version
61 //
62 // Because the output can be large, it's best to save it to a file
63 // java -XX:AOTCache=app.aot -Xlog:aot+map*=trace:file=aot.map:none:filesize=0 --version
64 class AOTMapLogger : AllStatic {
65 struct ArchivedObjInfo {
66 address _src_addr;
67 address _buffered_addr;
68 address _requested_addr;
69 int _bytes;
70 MetaspaceClosureType _type;
71 };
72
73 public:
74 // FakeOop and subtypes
75 class FakeOop;
76 class FakeMirror;
77 class FakeRefArray;
78 class FakeFlatArray;
79 class FakeString;
80 class FakeTypeArray;
81
82 #if INCLUDE_CDS_JAVA_HEAP
83 struct OopData {
84 address _buffered_addr;
85 address _requested_addr;
86 intptr_t _target_location;
87 uint32_t _narrow_location;
88 oopDesc* _raw_oop;
89 Klass* _klass;
90 size_t _size;
91 bool _is_root_segment;
92 };
93
94 class OopDataIterator : public CHeapObj<mtClassShared> {
95 protected:
96 OopData null_data() {
97 return { nullptr,
98 nullptr,
|