RFR: 8264644: Add PrintClassLoaderDataGraphAtExit to print the detailed CLD graph [v3]

David Holmes dholmes at openjdk.java.net
Wed Apr 7 05:13:36 UTC 2021


On Tue, 6 Apr 2021 06:38:53 GMT, Yi Yang <yyang at openjdk.org> wrote:

>> Trivial chanage to make debugging happy, now cld->print() would be:
>> 
>> ClassLoaderData(0x00007ff17432b670)
>>  - name                'platform'
>>  - holder              WeakHandle: 0x00000007fef56678
>>  - class loader        0x7ff17432b828
>>  - metaspace           0x7ff17468a0b0
>>  - unloading           false
>>  - class mirror holder false
>>  - modified oops       true
>>  - keep alive          0
>>  - claim               strong
>>  - handles             43
>>  - dependency count    0
>>  - klasses             {java.sql.SQLFeatureNotSupportedException,java.sql.SQLNonTransientException,java.sql.SQLException,sun.util.resources.provider.NonBaseLocaleDataMetaInfo,org.ietf.jgss.GSSException,javax.sql.DataSource,java.sql.Wrapper,javax.sql.CommonDataSource,java.sql.Time,java.sql.Date,java.sql.Timestamp,sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo, }
>>  - packages            0x7ff17432bc20
>>  - module              0x7ff17432c520
>>  - unnamed module      0x7ff17432c3d0
>>  - dictionary          0x7ff17432c470
>>  - deallocate list     0x7ff0a4023bd0
>
> Yi Yang has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - add CLDG_lock
>  - use PTR_FORMAT

A couple of minor nits.

Thanks,
David

src/hotspot/share/classfile/classLoaderData.cpp line 952:

> 950:     out->print_cr("");
> 951:   }
> 952:   out->print_cr(" - class loader        " PTR_FORMAT, p2i(_class_loader.ptr_raw()));

I'm surprised the p2i's were added. If the values are pointers then p2i should not be needed. If using p2i then INTPTR_FORMAT is the correct format specifier to use.

-------------

Changes requested by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/3323


More information about the hotspot-dev mailing list