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