mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDS
Read in the md region of the CDS archive in SA and map the vtable addresses to the corresponding metadata type. Reviewed-by: iklam, coleenp, ysuenaga, dholmes
This commit is contained in:
parent
15ef60b350
commit
ccc74fdd60
11 changed files with 719 additions and 56 deletions
|
@ -56,6 +56,7 @@
|
|||
#include "memory/referenceType.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
#include "memory/virtualspace.hpp"
|
||||
#include "memory/filemap.hpp"
|
||||
#include "oops/array.hpp"
|
||||
#include "oops/arrayKlass.hpp"
|
||||
#include "oops/arrayOop.hpp"
|
||||
|
@ -1120,6 +1121,16 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
static_field(java_lang_Class, _oop_size_offset, int) \
|
||||
static_field(java_lang_Class, _static_oop_field_count_offset, int) \
|
||||
\
|
||||
/********************************************/ \
|
||||
/* FileMapInfo fields (CDS archive related) */ \
|
||||
/********************************************/ \
|
||||
\
|
||||
nonstatic_field(FileMapInfo, _header, FileMapInfo::FileMapHeader*) \
|
||||
static_field(FileMapInfo, _current_info, FileMapInfo*) \
|
||||
nonstatic_field(FileMapInfo::FileMapHeader, _space[0], FileMapInfo::FileMapHeader::space_info)\
|
||||
nonstatic_field(FileMapInfo::FileMapHeader::space_info, _addr._base, char*) \
|
||||
nonstatic_field(FileMapInfo::FileMapHeader::space_info, _used, size_t) \
|
||||
\
|
||||
/******************/ \
|
||||
/* VMError fields */ \
|
||||
/******************/ \
|
||||
|
@ -1444,7 +1455,7 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
declare_type(SafepointBlob, SingletonBlob) \
|
||||
declare_type(DeoptimizationBlob, SingletonBlob) \
|
||||
declare_c2_type(ExceptionBlob, SingletonBlob) \
|
||||
declare_c2_type(UncommonTrapBlob, RuntimeBlob) \
|
||||
declare_c2_type(UncommonTrapBlob, RuntimeBlob) \
|
||||
\
|
||||
/***************************************/ \
|
||||
/* PcDesc and other compiled code info */ \
|
||||
|
@ -2000,6 +2011,10 @@ typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
|
|||
declare_toplevel_type(vframeArrayElement) \
|
||||
declare_toplevel_type(Annotations*) \
|
||||
declare_type(OopMapValue, StackObj) \
|
||||
declare_type(FileMapInfo, CHeapObj<mtInternal>) \
|
||||
declare_type(FileMapInfo::FileMapHeaderBase, CHeapObj<mtClass>) \
|
||||
declare_type(FileMapInfo::FileMapHeader, FileMapInfo::FileMapHeaderBase)\
|
||||
declare_toplevel_type(FileMapInfo::FileMapHeader::space_info) \
|
||||
\
|
||||
/************/ \
|
||||
/* GC types */ \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue