RFR: 8344913: Improve -Xlog:cds+map+oop logging for Java mirrors
Ioi Lam
iklam at openjdk.org
Sun Nov 24 00:51:31 UTC 2024
The following information is added to the `-Xlog:cds+map+oop` output for examining the `java/lang/Class` oop instances inside the AOT cache:
- Print the name of the class
- Print the value of the static fields-
- Print the resolved_reference_array for this class, so it's easy to see what constant pool entries (for Lambdas, etc) are resolved.
Below is the new and modified output vs the previous version:
- 0x00000000ffe7af28: @@ Object (0xffe7af28) java.lang.Class
+ 0x00000000ffe7af28: @@ Object (0xffe7af28) java.lang.Class Ljava/lang/System;
0x00000000ffe7af28: 40b7b001 0000035b 001bb638 00000000 001a9b90 00000008 00000000 00000000 ...@[...8.......................
0x00000000ffe7af48: 00000013 0000000a 00000000 00000000 00000000 00000000 00000000 00000000 ................................
0x00000000ffe7af68: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ................................
0x00000000ffe7af88: 00000000 00000000 00000000 fff04c58 00000000 00000000 00000000 00000000 ............XL..................
0x00000000ffe7afa8: 00000000 00000000 00000000 00000000 00000000 00000000 ........................
- klass: 'java/lang/Class' 0x00000008001bb638
- fields (19 words):
- private volatile transient 'classRedefinedCount' 'I' @12 0 (0x00000000)
- injected 'klass' 'J' @16 0x00000008001a9b90 (marked metadata pointer @0x00000000ffe7af38 )
- injected 'array_klass' 'J' @24 0 (0x0000000000000000)
- injected 'oop_size' 'I' @32 19 (0x00000013)
- injected 'static_oop_field_count' 'I' @36 10 (0x0000000a)
- private volatile transient 'cachedConstructor' 'Ljava/lang/reflect/Constructor;' @40 null
- private transient 'name' 'Ljava/lang/String;' @44 null
- private transient 'module' 'Ljava/lang/Module;' @48 null
- private final 'classLoader' 'Ljava/lang/ClassLoader;' @52 null
- private transient 'classData' 'Ljava/lang/Object;' @56 null
- private transient 'signers' '[Ljava/lang/Object;' @60 null
- private transient 'packageName' 'Ljava/lang/String;' @64 null
- private final 'componentType' 'Ljava/lang/Class;' @68 null
- private volatile transient 'reflectionData' 'Ljava/lang/ref/SoftReference;' @72 null
- private volatile transient 'genericInfo' 'Lsun/reflect/generics/repository/ClassRepository;' @76 null
- private volatile transient 'enumConstants' '[Ljava/lang/Object;' @80 null
- private volatile transient 'enumConstantDirectory' 'Ljava/util/Map;' @84 null
- private volatile transient 'annotationData' 'Ljava/lang/Class$AnnotationData;' @88 null
- private volatile transient 'annotationType' 'Lsun/reflect/annotation/AnnotationType;' @92 null
- transient 'classValueMap' 'Ljava/lang/ClassValue$ClassValueMap;' @96 null
- injected 'protection_domain' 'Ljava/lang/Object;' @100 null
- injected 'source_file' 'Ljava/lang/Object;' @104 null
- injected '<init_lock>' 'Ljava/lang/Object;' @108 0x00000000fff04c58 (0xfff04c58) [I length: 0
+ - signature: Ljava/lang/System;
+ - archived_resolved_references: 0x00000000ffe31b18 (0xffe31b18) [Ljava.lang.Object; length: 29
+ - ---- static fields (10):
+ - public static final 'in' 'Ljava/io/InputStream;' @112 null
+ - public static final 'out' 'Ljava/io/PrintStream;' @116 null
+ - public static final 'err' 'Ljava/io/PrintStream;' @120 null
+ - private static 'initialIn' 'Ljava/io/InputStream;' @124 null
+ - private static 'initialErr' 'Ljava/io/PrintStream;' @128 null
+ - private static 'notSupportedJnuEncoding' 'Ljava/lang/String;' @132 null
+ - private static volatile 'cons' 'Ljava/io/Console;' @136 null
+ - private static 'props' 'Ljava/util/Properties;' @140 null
+ - private static 'lineSeparator' 'Ljava/lang/String;' @144 null
+ - static 'bootLayer' 'Ljava/lang/ModuleLayer;' @148 null
-------------
Commit messages:
- 8344913: Improve -Xlog:cds+map+oop logging for Java mirrors
Changes: https://git.openjdk.org/jdk/pull/22345/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22345&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8344913
Stats: 74 lines in 1 file changed: 68 ins; 0 del; 6 mod
Patch: https://git.openjdk.org/jdk/pull/22345.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22345/head:pull/22345
PR: https://git.openjdk.org/jdk/pull/22345
More information about the hotspot-runtime-dev
mailing list