130 // System.getProperties from debuggee VM
131 private Properties sysProps;
132
133 // VM version strings come from Abstract_VM_Version class
134 private String vmRelease;
135 private String vmInternalInfo;
136
137 private Flag[] commandLineFlags;
138 private Map<String, Flag> flagsMap;
139
140 private static Type intType;
141 private static Type uintType;
142 private static Type intxType;
143 private static Type uintxType;
144 private static Type sizetType;
145 private static Type uint64tType;
146 private static CIntegerType boolType;
147 private Boolean sharingEnabled;
148 private Boolean compressedOopsEnabled;
149 private Boolean compressedKlassPointersEnabled;
150
151 // command line flags supplied to VM - see struct JVMFlag in jvmFlag.hpp
152 public static final class Flag {
153 private String type;
154 private String name;
155 private Address addr;
156 private int flags;
157
158 private Flag(String type, String name, Address addr, int flags) {
159 this.type = type;
160 this.name = name;
161 this.addr = addr;
162 this.flags = flags;
163 }
164
165 public String getType() {
166 return type;
167 }
168
169 public String getName() {
945 }
946
947 public boolean isCompressedOopsEnabled() {
948 if (compressedOopsEnabled == null) {
949 Flag flag = getCommandLineFlag("UseCompressedOops");
950 compressedOopsEnabled = (flag == null) ? Boolean.FALSE:
951 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
952 }
953 return compressedOopsEnabled.booleanValue();
954 }
955
956 public boolean isCompressedKlassPointersEnabled() {
957 if (compressedKlassPointersEnabled == null) {
958 Flag flag = getCommandLineFlag("UseCompressedClassPointers");
959 compressedKlassPointersEnabled = (flag == null) ? Boolean.FALSE:
960 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
961 }
962 return compressedKlassPointersEnabled.booleanValue();
963 }
964
965 public int getObjectAlignmentInBytes() {
966 if (objectAlignmentInBytes == 0) {
967 Flag flag = getCommandLineFlag("ObjectAlignmentInBytes");
968 objectAlignmentInBytes = (flag == null) ? 8 : (int)flag.getIntx();
969 }
970 return objectAlignmentInBytes;
971 }
972
973 /** Indicates whether Thread-Local Allocation Buffers are used */
974 public boolean getUseTLAB() {
975 Flag flag = getCommandLineFlag("UseTLAB");
976 return (flag == null) ? false: flag.getBool();
977 }
978
979 public boolean getCommandLineBooleanFlag(String name) {
980 Flag flag = getCommandLineFlag(name);
981 return (flag == null) ? Boolean.FALSE:
982 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
983 }
984
|
130 // System.getProperties from debuggee VM
131 private Properties sysProps;
132
133 // VM version strings come from Abstract_VM_Version class
134 private String vmRelease;
135 private String vmInternalInfo;
136
137 private Flag[] commandLineFlags;
138 private Map<String, Flag> flagsMap;
139
140 private static Type intType;
141 private static Type uintType;
142 private static Type intxType;
143 private static Type uintxType;
144 private static Type sizetType;
145 private static Type uint64tType;
146 private static CIntegerType boolType;
147 private Boolean sharingEnabled;
148 private Boolean compressedOopsEnabled;
149 private Boolean compressedKlassPointersEnabled;
150 private Boolean compactObjectHeadersEnabled;
151
152 // command line flags supplied to VM - see struct JVMFlag in jvmFlag.hpp
153 public static final class Flag {
154 private String type;
155 private String name;
156 private Address addr;
157 private int flags;
158
159 private Flag(String type, String name, Address addr, int flags) {
160 this.type = type;
161 this.name = name;
162 this.addr = addr;
163 this.flags = flags;
164 }
165
166 public String getType() {
167 return type;
168 }
169
170 public String getName() {
946 }
947
948 public boolean isCompressedOopsEnabled() {
949 if (compressedOopsEnabled == null) {
950 Flag flag = getCommandLineFlag("UseCompressedOops");
951 compressedOopsEnabled = (flag == null) ? Boolean.FALSE:
952 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
953 }
954 return compressedOopsEnabled.booleanValue();
955 }
956
957 public boolean isCompressedKlassPointersEnabled() {
958 if (compressedKlassPointersEnabled == null) {
959 Flag flag = getCommandLineFlag("UseCompressedClassPointers");
960 compressedKlassPointersEnabled = (flag == null) ? Boolean.FALSE:
961 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
962 }
963 return compressedKlassPointersEnabled.booleanValue();
964 }
965
966 public boolean isCompactObjectHeadersEnabled() {
967 if (compactObjectHeadersEnabled == null) {
968 Flag flag = getCommandLineFlag("UseCompactObjectHeaders");
969 compactObjectHeadersEnabled = (flag == null) ? Boolean.FALSE:
970 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
971 }
972 return compactObjectHeadersEnabled.booleanValue();
973 }
974
975 public int getObjectAlignmentInBytes() {
976 if (objectAlignmentInBytes == 0) {
977 Flag flag = getCommandLineFlag("ObjectAlignmentInBytes");
978 objectAlignmentInBytes = (flag == null) ? 8 : (int)flag.getIntx();
979 }
980 return objectAlignmentInBytes;
981 }
982
983 /** Indicates whether Thread-Local Allocation Buffers are used */
984 public boolean getUseTLAB() {
985 Flag flag = getCommandLineFlag("UseTLAB");
986 return (flag == null) ? false: flag.getBool();
987 }
988
989 public boolean getCommandLineBooleanFlag(String name) {
990 Flag flag = getCommandLineFlag(name);
991 return (flag == null) ? Boolean.FALSE:
992 (flag.getBool()? Boolean.TRUE: Boolean.FALSE);
993 }
994
|