134 access = new BsdAMD64JavaThreadPDAccess();
135 }
136 } else if (os.equals("darwin")) {
137 if (cpu.equals("amd64") || cpu.equals("x86_64")) {
138 access = new BsdAMD64JavaThreadPDAccess();
139 } else if (cpu.equals("aarch64")) {
140 access = new BsdAARCH64JavaThreadPDAccess();
141 }
142 }
143
144 if (access == null) {
145 throw new RuntimeException("OS/CPU combination " + os + "/" + cpu +
146 " not yet supported");
147 }
148
149 virtualConstructor = new VirtualConstructor(db);
150 // Add mappings for all known thread types
151 virtualConstructor.addMapping("JavaThread", JavaThread.class);
152 if (!VM.getVM().isCore()) {
153 virtualConstructor.addMapping("CompilerThread", CompilerThread.class);
154 }
155 virtualConstructor.addMapping("JvmtiAgentThread", JvmtiAgentThread.class);
156 virtualConstructor.addMapping("ServiceThread", ServiceThread.class);
157 virtualConstructor.addMapping("MonitorDeflationThread", MonitorDeflationThread.class);
158 virtualConstructor.addMapping("NotificationThread", NotificationThread.class);
159 virtualConstructor.addMapping("StringDedupThread", StringDedupThread.class);
160 virtualConstructor.addMapping("AttachListenerThread", AttachListenerThread.class);
161 }
162
163 public Threads() {
164 _list = VMObjectFactory.newObject(ThreadsList.class, threadListField.getValue());
165 }
166
167 /** NOTE: this returns objects of type JavaThread, CompilerThread,
168 JvmtiAgentThread, NotificationThread, MonitorDeflationThread,
169 StringDedupThread, AttachListenerThread and ServiceThread.
170 The latter seven subclasses of the former. Most operations
171 (fetching the top frame, etc.) are only allowed to be performed on
172 a "pure" JavaThread. For this reason, {@link
173 sun.jvm.hotspot.runtime.JavaThread#isJavaThread} has been
|
134 access = new BsdAMD64JavaThreadPDAccess();
135 }
136 } else if (os.equals("darwin")) {
137 if (cpu.equals("amd64") || cpu.equals("x86_64")) {
138 access = new BsdAMD64JavaThreadPDAccess();
139 } else if (cpu.equals("aarch64")) {
140 access = new BsdAARCH64JavaThreadPDAccess();
141 }
142 }
143
144 if (access == null) {
145 throw new RuntimeException("OS/CPU combination " + os + "/" + cpu +
146 " not yet supported");
147 }
148
149 virtualConstructor = new VirtualConstructor(db);
150 // Add mappings for all known thread types
151 virtualConstructor.addMapping("JavaThread", JavaThread.class);
152 if (!VM.getVM().isCore()) {
153 virtualConstructor.addMapping("CompilerThread", CompilerThread.class);
154 virtualConstructor.addMapping("TrainingReplayThread", TrainingReplayThread.class);
155 }
156 virtualConstructor.addMapping("JvmtiAgentThread", JvmtiAgentThread.class);
157 virtualConstructor.addMapping("ServiceThread", ServiceThread.class);
158 virtualConstructor.addMapping("MonitorDeflationThread", MonitorDeflationThread.class);
159 virtualConstructor.addMapping("NotificationThread", NotificationThread.class);
160 virtualConstructor.addMapping("StringDedupThread", StringDedupThread.class);
161 virtualConstructor.addMapping("AttachListenerThread", AttachListenerThread.class);
162 }
163
164 public Threads() {
165 _list = VMObjectFactory.newObject(ThreadsList.class, threadListField.getValue());
166 }
167
168 /** NOTE: this returns objects of type JavaThread, CompilerThread,
169 JvmtiAgentThread, NotificationThread, MonitorDeflationThread,
170 StringDedupThread, AttachListenerThread and ServiceThread.
171 The latter seven subclasses of the former. Most operations
172 (fetching the top frame, etc.) are only allowed to be performed on
173 a "pure" JavaThread. For this reason, {@link
174 sun.jvm.hotspot.runtime.JavaThread#isJavaThread} has been
|