134 } else if (cpu.equals("aarch64")) {
135 access = new BsdAARCH64JavaThreadPDAccess();
136 }
137 }
138
139 if (access == null) {
140 throw new RuntimeException("OS/CPU combination " + os + "/" + cpu +
141 " not yet supported");
142 }
143
144 virtualConstructor = new VirtualConstructor(db);
145
146 /*
147 * Add mappings for JavaThread types
148 */
149
150 virtualConstructor.addMapping("JavaThread", JavaThread.class);
151
152 if (!VM.getVM().isCore()) {
153 virtualConstructor.addMapping("CompilerThread", CompilerThread.class);
154 }
155
156 // These are all the visible JavaThread subclasses that execute java code.
157 virtualConstructor.addMapping("JvmtiAgentThread", JavaThread.class);
158 virtualConstructor.addMapping("NotificationThread", JavaThread.class);
159 virtualConstructor.addMapping("AttachListenerThread", JavaThread.class);
160
161 // These are all the hidden JavaThread subclasses that don't execute java code.
162 virtualConstructor.addMapping("StringDedupThread", HiddenJavaThread.class);
163 virtualConstructor.addMapping("ServiceThread", HiddenJavaThread.class);
164 virtualConstructor.addMapping("MonitorDeflationThread", HiddenJavaThread.class);
165 // Only add DeoptimizeObjectsALotThread if it is actually present in the type database.
166 if (db.lookupType("DeoptimizeObjectsALotThread", false) != null) {
167 virtualConstructor.addMapping("DeoptimizeObjectsALotThread", HiddenJavaThread.class);
168 }
169 }
170
171 public Threads() {
172 _list = VMObjectFactory.newObject(ThreadsList.class, threadListField.getValue());
173 }
|
134 } else if (cpu.equals("aarch64")) {
135 access = new BsdAARCH64JavaThreadPDAccess();
136 }
137 }
138
139 if (access == null) {
140 throw new RuntimeException("OS/CPU combination " + os + "/" + cpu +
141 " not yet supported");
142 }
143
144 virtualConstructor = new VirtualConstructor(db);
145
146 /*
147 * Add mappings for JavaThread types
148 */
149
150 virtualConstructor.addMapping("JavaThread", JavaThread.class);
151
152 if (!VM.getVM().isCore()) {
153 virtualConstructor.addMapping("CompilerThread", CompilerThread.class);
154 virtualConstructor.addMapping("TrainingReplayThread", TrainingReplayThread.class);
155 }
156
157 // These are all the visible JavaThread subclasses that execute java code.
158 virtualConstructor.addMapping("JvmtiAgentThread", JavaThread.class);
159 virtualConstructor.addMapping("NotificationThread", JavaThread.class);
160 virtualConstructor.addMapping("AttachListenerThread", JavaThread.class);
161
162 // These are all the hidden JavaThread subclasses that don't execute java code.
163 virtualConstructor.addMapping("StringDedupThread", HiddenJavaThread.class);
164 virtualConstructor.addMapping("ServiceThread", HiddenJavaThread.class);
165 virtualConstructor.addMapping("MonitorDeflationThread", HiddenJavaThread.class);
166 // Only add DeoptimizeObjectsALotThread if it is actually present in the type database.
167 if (db.lookupType("DeoptimizeObjectsALotThread", false) != null) {
168 virtualConstructor.addMapping("DeoptimizeObjectsALotThread", HiddenJavaThread.class);
169 }
170 }
171
172 public Threads() {
173 _list = VMObjectFactory.newObject(ThreadsList.class, threadListField.getValue());
174 }
|