From 952162917c404b937736cc1c44e1bd900f688788 Mon Sep 17 00:00:00 2001 From: Theresa Mammarella Date: Tue, 29 Aug 2023 15:28:52 -0400 Subject: [PATCH 1/2] Show internal field modifiers in ddr rom class dump - include internal modifiers for fields in rom class dump - fix incorrectly ordered arguments of dumpModifers method Signed-off-by: Theresa Mammarella --- .../j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java b/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java index a7e4ac67c8a..f19cdefdbca 100644 --- a/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java +++ b/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java @@ -709,7 +709,7 @@ private static void dumpRomField(PrintStream out, J9ROMFieldShapePointer romFiel out.append(" Name: " + J9UTF8Helper.stringValue(romField.nameAndSignature().name()) + nl); out.append(" Signature: " + J9UTF8Helper.stringValue(romField.nameAndSignature().signature()) + nl); out.append(String.format(" Access Flags (%s): ", Long.toHexString(romField.modifiers().longValue()))); - dumpModifiers(out, romField.modifiers().longValue(), MODIFIERSOURCE_FIELD, ONLY_SPEC_MODIFIERS); + dumpModifiers(out, romField.modifiers().longValue(), MODIFIERSOURCE_FIELD, INCLUDE_INTERNAL_MODIFIERS); out.append(nl); } @@ -717,7 +717,7 @@ private static void dumpRomStaticField(PrintStream out, J9ROMFieldShapePointer r out.append(" Name: " + J9UTF8Helper.stringValue(romStatic.nameAndSignature().name()) + nl); out.append(" Signature: " + J9UTF8Helper.stringValue(romStatic.nameAndSignature().signature()) + nl); out.append(String.format(" Access Flags (%s): ", Long.toHexString(romStatic.modifiers().longValue()))); - dumpModifiers(out, romStatic.modifiers().longValue(), MODIFIERSOURCE_FIELD, ONLY_SPEC_MODIFIERS); + dumpModifiers(out, romStatic.modifiers().longValue(), MODIFIERSOURCE_FIELD, INCLUDE_INTERNAL_MODIFIERS); out.append(nl); } @@ -1210,7 +1210,7 @@ private static void dumpMethodParameters(PrintStream out, J9ROMClassPointer romc } out.print(String.format(" 0x%x ( ", parameterFlags)); - dumpModifiers(out, parameterFlags, ONLY_SPEC_MODIFIERS, MODIFIERSOURCE_METHODPARAMETER); + dumpModifiers(out, parameterFlags, MODIFIERSOURCE_METHODPARAMETER, ONLY_SPEC_MODIFIERS); out.println(" )\n"); } out.println("\n"); From 80418e5a81b94849aafbebe8cc9e97de63c236d8 Mon Sep 17 00:00:00 2001 From: Theresa Mammarella Date: Tue, 29 Aug 2023 15:32:56 -0400 Subject: [PATCH 2/2] Print NullRestricted field modifier in ddr rom class dump Signed-off-by: Theresa Mammarella --- .../DDR_VM/src/com/ibm/j9ddr/CompatibilityConstants29.dat | 2 ++ .../vm29/tools/ddrinteractive/commands/J9BCUtil.java | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debugtools/DDR_VM/src/com/ibm/j9ddr/CompatibilityConstants29.dat b/debugtools/DDR_VM/src/com/ibm/j9ddr/CompatibilityConstants29.dat index 86f5bd23e51..6147f6e2f1f 100644 --- a/debugtools/DDR_VM/src/com/ibm/j9ddr/CompatibilityConstants29.dat +++ b/debugtools/DDR_VM/src/com/ibm/j9ddr/CompatibilityConstants29.dat @@ -56,6 +56,8 @@ J9Consts.J9_ITABLE_OFFSET_VIRTUAL = 0 J9DescriptionBits.J9DescriptionCpBsmIndexMask = 0 +J9FieldFlags.J9FieldFlagIsNullRestricted = 0 + J9JavaAccessFlags.J9AccClassIsUnmodifiable = 0 J9JavaAccessFlags.J9AccRecord = 0 J9JavaAccessFlags.J9AccSealed = 0 diff --git a/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java b/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java index f19cdefdbca..9f635e15d63 100644 --- a/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java +++ b/debugtools/DDR_VM/src/com/ibm/j9ddr/vm29/tools/ddrinteractive/commands/J9BCUtil.java @@ -233,6 +233,8 @@ public static void j9bcutil_dumpRomMethod(PrintStream out, J9ROMMethodPointer ro * -ACC_TRANSIENT * -ACC_SYNTHETIC * -ACC_ENUM + * -J9FieldFlagConstant + * -J9FieldFlagIsNullRestricted * * :: METHODPARAMETERS :: * -ACC_FINAL @@ -261,7 +263,7 @@ private static void dumpModifiers(PrintStream out, long modifiers, int modifierS if (ONLY_SPEC_MODIFIERS == modScope) { modifiers &= J9CfrClassFile.CFR_FIELD_ACCESS_MASK; } else { - modifiers &= J9CfrClassFile.CFR_FIELD_ACCESS_MASK | J9FieldFlags.J9FieldFlagConstant; + modifiers &= J9CfrClassFile.CFR_FIELD_ACCESS_MASK | J9FieldFlags.J9FieldFlagConstant | J9FieldFlags.J9FieldFlagIsNullRestricted; } break; @@ -311,6 +313,10 @@ private static void dumpModifiers(PrintStream out, long modifiers, int modifierS out.append("(constant) "); modifiers &= ~J9FieldFlags.J9FieldFlagConstant; } + if ((modifiers & J9FieldFlags.J9FieldFlagIsNullRestricted) != 0) { + out.append("(NullRestricted) "); + modifiers &= ~J9FieldFlags.J9FieldFlagIsNullRestricted; + } } }