RFR: 8313752: InstanceKlassFlags::print_on doesn't print the flag names

Stefan Karlsson stefank at openjdk.org
Tue Aug 8 09:56:33 UTC 2023


On Fri, 4 Aug 2023 11:28:50 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

> I've found that our misc flags printing is broken. This can be seen in our hs_err files:
> 
> RCX=0x00007f86bf0073c8 is a pointer to class: 
> java.lang.Class {0x00007f86bf0073c8}
>  - instance size:     22
>  - klass size:        97
>  - access:            public final synchronized 
>  - flags:              ##name  ##name  ##name  ##name  ##name  ##name 
> 
> 
> With this fix the flags are now printed as expected:
> 
> java.util.Hashtable {0x00007f5fff00e8c0}
>  - instance size:     8
>  - klass size:        123
>  - access:            public synchronized 
>  - flags:              rewritten  has_nonstatic_fields  has_nonstatic_concrete_methods  is_shared_boot_class  has_localvariable_table  has_final_method 
> 
> 
> The indentation doesn't look that great, so if you want me to change it I can do so in this patch as well.

I've tweaked the output slightly so that it looks nicer:

 - access:            public interface abstract 
 - flags:             rewritten is_shared_boot_class 
 - state:             linked


Manually inspected the output of InstanceKlassFlags::print_on and 
MethodFlags::print_on.

ConstMethod::print_on doesn't seem to be explicitly called. Also note that ConstMethod::print_on isn't an "override" because ConstMethod inherits from MetaspaceObj and not Metadata.

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

PR Comment: https://git.openjdk.org/jdk/pull/15153#issuecomment-1669299171


More information about the hotspot-dev mailing list