Mercurial > hg > graal-jvmci-8
comparison agent/src/share/classes/sun/jvm/hotspot/tools/Tool.java @ 8103:5ed317b25e23
7165259: Remove BugSpot
Reviewed-by: coleenp, mgronlun
author | sla |
---|---|
date | Fri, 22 Feb 2013 10:03:02 +0100 |
parents | c18cbe5936b8 |
children | 38ea2efa32a7 |
comparison
equal
deleted
inserted
replaced
8102:fc64254f5579 | 8103:5ed317b25e23 |
---|---|
25 package sun.jvm.hotspot.tools; | 25 package sun.jvm.hotspot.tools; |
26 | 26 |
27 import java.io.PrintStream; | 27 import java.io.PrintStream; |
28 import java.util.Hashtable; | 28 import java.util.Hashtable; |
29 import sun.jvm.hotspot.*; | 29 import sun.jvm.hotspot.*; |
30 import sun.jvm.hotspot.bugspot.*; | |
31 import sun.jvm.hotspot.runtime.*; | 30 import sun.jvm.hotspot.runtime.*; |
32 import sun.jvm.hotspot.debugger.*; | 31 import sun.jvm.hotspot.debugger.*; |
33 | 32 |
34 // generic command line or GUI tool. | 33 // generic command line or GUI tool. |
35 // override run & code main as shown below. | 34 // override run & code main as shown below. |
36 | 35 |
37 public abstract class Tool implements Runnable { | 36 public abstract class Tool implements Runnable { |
38 private BugSpotAgent agent; | 37 private HotSpotAgent agent; |
39 private int debugeeType; | 38 private int debugeeType; |
40 | 39 |
41 // debugeeType is one of constants below | 40 // debugeeType is one of constants below |
42 protected static final int DEBUGEE_PID = 0; | 41 protected static final int DEBUGEE_PID = 0; |
43 protected static final int DEBUGEE_CORE = 1; | 42 protected static final int DEBUGEE_CORE = 1; |
49 | 48 |
50 protected boolean needsJavaPrefix() { | 49 protected boolean needsJavaPrefix() { |
51 return true; | 50 return true; |
52 } | 51 } |
53 | 52 |
54 // whether this tool requires debuggee to be java process or core? | 53 protected void setAgent(HotSpotAgent a) { |
55 protected boolean requiresVM() { | |
56 return true; | |
57 } | |
58 | |
59 protected void setAgent(BugSpotAgent a) { | |
60 agent = a; | 54 agent = a; |
61 } | 55 } |
62 | 56 |
63 protected void setDebugeeType(int dt) { | 57 protected void setDebugeeType(int dt) { |
64 debugeeType = dt; | 58 debugeeType = dt; |
65 } | 59 } |
66 | 60 |
67 protected BugSpotAgent getAgent() { | 61 protected HotSpotAgent getAgent() { |
68 return agent; | 62 return agent; |
69 } | 63 } |
70 | 64 |
71 protected int getDebugeeType() { | 65 protected int getDebugeeType() { |
72 return debugeeType; | 66 return debugeeType; |
153 | 147 |
154 default: | 148 default: |
155 usage(); | 149 usage(); |
156 } | 150 } |
157 | 151 |
158 agent = new BugSpotAgent(); | 152 agent = new HotSpotAgent(); |
159 try { | 153 try { |
160 switch (debugeeType) { | 154 switch (debugeeType) { |
161 case DEBUGEE_PID: | 155 case DEBUGEE_PID: |
162 err.println("Attaching to process ID " + pid + ", please wait..."); | 156 err.println("Attaching to process ID " + pid + ", please wait..."); |
163 agent.attach(pid); | 157 agent.attach(pid); |
196 System.exit(1); | 190 System.exit(1); |
197 } | 191 } |
198 | 192 |
199 err.println("Debugger attached successfully."); | 193 err.println("Debugger attached successfully."); |
200 | 194 |
201 boolean isJava = agent.isJavaMode(); | 195 VM vm = VM.getVM(); |
202 if (isJava) { | 196 if (vm.isCore()) { |
203 VM vm = VM.getVM(); | 197 err.println("Core build detected."); |
204 if (vm.isCore()) { | 198 } else if (vm.isClientCompiler()) { |
205 err.println("Core build detected."); | 199 err.println("Client compiler detected."); |
206 } else if (vm.isClientCompiler()) { | 200 } else if (vm.isServerCompiler()) { |
207 err.println("Client compiler detected."); | 201 err.println("Server compiler detected."); |
208 } else if (vm.isServerCompiler()) { | 202 } else { |
209 err.println("Server compiler detected."); | 203 throw new RuntimeException("Fatal error: " |
210 } else { | 204 + "should have been able to detect core/C1/C2 build"); |
211 throw new RuntimeException("Fatal error: " + | 205 } |
212 "should have been able to detect core/C1/C2 build"); | 206 |
213 } | 207 String version = vm.getVMRelease(); |
214 | 208 if (version != null) { |
215 String version = vm.getVMRelease(); | 209 err.print("JVM version is "); |
216 if (version != null) { | 210 err.println(version); |
217 err.print("JVM version is "); | 211 } |
218 err.println(version); | 212 |
219 } | 213 run(); |
220 | |
221 run(); | |
222 } else { // not a java process or core | |
223 if (requiresVM()) { | |
224 err.println(getName() + " requires a java VM process/core!"); | |
225 } else { | |
226 run(); | |
227 } | |
228 } | |
229 } | 214 } |
230 } | 215 } |