RFR: JDK-8174994: SA: clhsdb printmdo throws WrongTypeException when attached to a process with CDS
ioi.lam at oracle.com
Tue Apr 17 05:39:59 UTC 2018
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
On 4/13/18 8:35 AM, coleen.phillimore at oracle.com wrote:
> 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 !
>> On 4/6/2018 9:51 PM, Jini George wrote:
>>> Requesting reviews for:
>>> 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,
>>> 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