1 /*
2 * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
70 private static List vmInitializedObservers = new ArrayList();
71 private List vmResumedObservers = new ArrayList();
72 private List vmSuspendedObservers = new ArrayList();
73 private TypeDataBase db;
74 private boolean isBigEndian;
75 /** This is only present if in a debugging system */
76 private JVMDebugger debugger;
77 private long stackBias;
78 private long logAddressSize;
79 private Universe universe;
80 private ObjectHeap heap;
81 private SymbolTable symbols;
82 private StringTable strings;
83 private SystemDictionary dict;
84 private ClassLoaderDataGraph cldGraph;
85 private Threads threads;
86 private ObjectSynchronizer synchronizer;
87 private JNIHandles handles;
88 private Interpreter interpreter;
89 private StubRoutines stubRoutines;
90 private Bytes bytes;
91
92 /** Flag indicating if JVMTI support is included in the build */
93 private boolean isJvmtiSupported;
94 /** Flags indicating whether we are attached to a core, C1, or C2 build */
95 private boolean usingClientCompiler;
96 private boolean usingServerCompiler;
97 /** alignment constants */
98 private boolean isLP64;
99 private int bytesPerLong;
100 private int bytesPerWord;
101 private int objectAlignmentInBytes;
102 private int minObjAlignmentInBytes;
103 private int logMinObjAlignmentInBytes;
104 private int heapWordSize;
105 private int heapOopSize;
106 private int klassPtrSize;
107 private int oopSize;
108 private final int IndexSetSize;
109 /** This is only present in a non-core build */
698
699 public Interpreter getInterpreter() {
700 if (interpreter == null) {
701 interpreter = new Interpreter();
702 }
703 return interpreter;
704 }
705
706 public StubRoutines getStubRoutines() {
707 if (stubRoutines == null) {
708 stubRoutines = new StubRoutines();
709 }
710 return stubRoutines;
711 }
712
713 public VMRegImpl getVMRegImplInfo() {
714 if (vmregImpl == null) {
715 vmregImpl = new VMRegImpl();
716 }
717 return vmregImpl;
718 }
719
720 public Bytes getBytes() {
721 if (bytes == null) {
722 bytes = new Bytes(debugger.getMachineDescription());
723 }
724 return bytes;
725 }
726
727 /** Returns true if this is a isBigEndian, false otherwise */
728 public boolean isBigEndian() {
729 return isBigEndian;
730 }
731
732 /** Returns true if JVMTI is supported, false otherwise */
733 public boolean isJvmtiSupported() {
734 return isJvmtiSupported;
735 }
736
737 /** Returns true if this is a "core" build, false if either C1 or C2
|
1 /*
2 * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
70 private static List vmInitializedObservers = new ArrayList();
71 private List vmResumedObservers = new ArrayList();
72 private List vmSuspendedObservers = new ArrayList();
73 private TypeDataBase db;
74 private boolean isBigEndian;
75 /** This is only present if in a debugging system */
76 private JVMDebugger debugger;
77 private long stackBias;
78 private long logAddressSize;
79 private Universe universe;
80 private ObjectHeap heap;
81 private SymbolTable symbols;
82 private StringTable strings;
83 private SystemDictionary dict;
84 private ClassLoaderDataGraph cldGraph;
85 private Threads threads;
86 private ObjectSynchronizer synchronizer;
87 private JNIHandles handles;
88 private Interpreter interpreter;
89 private StubRoutines stubRoutines;
90 private FileMapInfo fileMapInfo;
91 private Bytes bytes;
92
93 /** Flag indicating if JVMTI support is included in the build */
94 private boolean isJvmtiSupported;
95 /** Flags indicating whether we are attached to a core, C1, or C2 build */
96 private boolean usingClientCompiler;
97 private boolean usingServerCompiler;
98 /** alignment constants */
99 private boolean isLP64;
100 private int bytesPerLong;
101 private int bytesPerWord;
102 private int objectAlignmentInBytes;
103 private int minObjAlignmentInBytes;
104 private int logMinObjAlignmentInBytes;
105 private int heapWordSize;
106 private int heapOopSize;
107 private int klassPtrSize;
108 private int oopSize;
109 private final int IndexSetSize;
110 /** This is only present in a non-core build */
699
700 public Interpreter getInterpreter() {
701 if (interpreter == null) {
702 interpreter = new Interpreter();
703 }
704 return interpreter;
705 }
706
707 public StubRoutines getStubRoutines() {
708 if (stubRoutines == null) {
709 stubRoutines = new StubRoutines();
710 }
711 return stubRoutines;
712 }
713
714 public VMRegImpl getVMRegImplInfo() {
715 if (vmregImpl == null) {
716 vmregImpl = new VMRegImpl();
717 }
718 return vmregImpl;
719 }
720
721 public FileMapInfo getFileMapInfo() {
722 if (isSharingEnabled() == false) {
723 return null;
724 }
725 if (fileMapInfo == null) {
726 fileMapInfo = new FileMapInfo();
727 }
728 return fileMapInfo;
729 }
730
731 public Bytes getBytes() {
732 if (bytes == null) {
733 bytes = new Bytes(debugger.getMachineDescription());
734 }
735 return bytes;
736 }
737
738 /** Returns true if this is a isBigEndian, false otherwise */
739 public boolean isBigEndian() {
740 return isBigEndian;
741 }
742
743 /** Returns true if JVMTI is supported, false otherwise */
744 public boolean isJvmtiSupported() {
745 return isJvmtiSupported;
746 }
747
748 /** Returns true if this is a "core" build, false if either C1 or C2
|