RFR: JDK-8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDS

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Fri Apr 13 15:35:48 UTC 2018

This change seems good.


It seems that you have three copies of this code.  Can you file an RFE 
to consolidate these?


On 4/12/18 12:21 AM, Jini George wrote:
> Ping: Gentle reminder !
> Thanks,
> Jini.
> On 4/6/2018 9:51 PM, Jini George wrote:
>> Hello!
>> 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 
>> src/hotspot/share/memory/filemap.hpp.
>> Test cases to test both live and corefile debugging are being added 
>> with this. These and other SA tests pass on Mach5.
>> Thanks,
>> Jini.

More information about the hotspot-runtime-dev mailing list