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

Jini George jini.george at oracle.com
Wed Apr 18 17:22:59 UTC 2018

Thank you very much for the reviews, Coleen and Ioi. I have filed the RFE.


On 4/17/2018 11:09 AM, Ioi Lam wrote:
> The changes look good to me.
> I agree with Coleen. Maybe FileMapHeader should be moved to a common 
> file that can be included in all the ps_core files, as well as the VM's 
> filemap.hpp?
> Thanks
> - Ioi
> On 4/13/18 8:35 AM, coleen.phillimore at oracle.com wrote:
>> This change seems good.
>> http://cr.openjdk.java.net/~jgeorge/8174994/webrev.00/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c.udiff.html 
>> It seems that you have three copies of this code.  Can you file an RFE 
>> to consolidate these?
>> thanks,
>> Coleen
>> 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