RFR: JDK-8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDS
jini.george at oracle.com
Thu Apr 12 04:21:54 UTC 2018
Ping: Gentle reminder !
On 4/6/2018 9:51 PM, Jini George wrote:
> Requesting reviews for: https://bugs.openjdk.java.net/browse/JDK-8174994
> Webrev: http://cr.openjdk.java.net/~jgeorge/8174994/webrev.00/
> While trying to identify the type given an address, a WrongTypeException
> was getting thrown with various clhsdb commands (like printmdo, jstack,
> etc). This was since SA tries to map an address to a hotspot C++ type by
> comparing the vtable address to the vtable address values of known
> types. With CDS, since the vtables are copied over for the Metadata
> classes, the vtable addresses themselves don't match (though, of course,
> the contents will), and SA errors out.
> The fix has been implemented by making changes to read in the md region
> (consisting of the c++ vtables) of the CDS archive in SA, and mapping
> the vtable addresses to the corresponding metadata type (ConstantPool,
> InstanceKlass, InstanceClassLoaderKlass, InstanceMirrorKlass,
> InstanceRefKlass, Method, ObjArrayKlass, TypeArrayKlass).
> For corefiles, an additional modification has been done to have the
> replicated FileMapHeader structure (from
> src/hotspot/share/memory/filemap.hpp, which is replicated in SA in
> ps_core.c), to be in sync with the corresponding definition in
> Test cases to test both live and corefile debugging are being added with
> this. These and other SA tests pass on Mach5.
More information about the hotspot-runtime-dev