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

Yasumasa Suenaga yasuenag at gmail.com
Sat Apr 14 14:09:21 UTC 2018

Hi Jini,

   Can this test work on modern Linux?
   AFAIK modern Linux contains systemd-coredump to gather core images. So I concern ClhsdbCDSCore.java fails in the future.



On 2018/04/12 13:21, 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