Mercurial > hg > truffle
comparison agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java @ 8756:686916dc0439
8009457: SA: A small fix on "scanoops" command in CLHSDB
Reviewed-by: sla, coleenp, kmo
Contributed-by: yunda.mly@taobao.com
author | sla |
---|---|
date | Tue, 19 Mar 2013 13:44:26 +0100 |
parents | 39432a1cefdd |
children | 38ea2efa32a7 |
comparison
equal
deleted
inserted
replaced
8755:117bb0519114 | 8756:686916dc0439 |
---|---|
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 package sun.jvm.hotspot; | 25 package sun.jvm.hotspot; |
26 | 26 |
27 import java.io.*; | 27 import java.io.BufferedOutputStream; |
28 import java.math.*; | 28 import java.io.BufferedReader; |
29 import java.util.*; | 29 import java.io.ByteArrayOutputStream; |
30 import java.util.regex.*; | 30 import java.io.FileInputStream; |
31 | 31 import java.io.FileOutputStream; |
32 import sun.jvm.hotspot.types.Type; | 32 import java.io.IOException; |
33 import sun.jvm.hotspot.types.Field; | 33 import java.io.InputStreamReader; |
34 import sun.jvm.hotspot.HotSpotTypeDataBase; | 34 import java.io.PrintStream; |
35 import sun.jvm.hotspot.types.basic.BasicType; | 35 import java.util.ArrayList; |
36 import sun.jvm.hotspot.types.basic.BasicTypeDataBase; | 36 import java.util.Arrays; |
37 import sun.jvm.hotspot.types.CIntegerType; | 37 import java.util.Comparator; |
38 import sun.jvm.hotspot.code.*; | 38 import java.util.HashMap; |
39 import sun.jvm.hotspot.compiler.*; | 39 import java.util.HashSet; |
40 import sun.jvm.hotspot.debugger.*; | 40 import java.util.Iterator; |
41 import sun.jvm.hotspot.interpreter.*; | 41 import java.util.Stack; |
42 import sun.jvm.hotspot.memory.*; | 42 import java.util.regex.Matcher; |
43 import sun.jvm.hotspot.oops.*; | 43 import java.util.regex.Pattern; |
44 import sun.jvm.hotspot.opto.*; | 44 |
45 import sun.jvm.hotspot.ci.*; | 45 import sun.jvm.hotspot.ci.ciEnv; |
46 import sun.jvm.hotspot.asm.*; | 46 import sun.jvm.hotspot.code.CodeBlob; |
47 import sun.jvm.hotspot.runtime.*; | 47 import sun.jvm.hotspot.code.CodeCacheVisitor; |
48 import sun.jvm.hotspot.utilities.*; | 48 import sun.jvm.hotspot.code.NMethod; |
49 import sun.jvm.hotspot.utilities.soql.*; | 49 import sun.jvm.hotspot.debugger.Address; |
50 import sun.jvm.hotspot.ui.classbrowser.*; | 50 import sun.jvm.hotspot.debugger.OopHandle; |
51 import sun.jvm.hotspot.ui.tree.*; | 51 import sun.jvm.hotspot.memory.SymbolTable; |
52 import sun.jvm.hotspot.tools.*; | 52 import sun.jvm.hotspot.memory.SystemDictionary; |
53 import sun.jvm.hotspot.memory.Universe; | |
54 import sun.jvm.hotspot.oops.DefaultHeapVisitor; | |
55 import sun.jvm.hotspot.oops.HeapVisitor; | |
56 import sun.jvm.hotspot.oops.InstanceKlass; | |
57 import sun.jvm.hotspot.oops.Klass; | |
58 import sun.jvm.hotspot.oops.Metadata; | |
59 import sun.jvm.hotspot.oops.Method; | |
60 import sun.jvm.hotspot.oops.MethodData; | |
61 import sun.jvm.hotspot.oops.Oop; | |
62 import sun.jvm.hotspot.oops.RawHeapVisitor; | |
63 import sun.jvm.hotspot.oops.Symbol; | |
64 import sun.jvm.hotspot.oops.UnknownOopException; | |
65 import sun.jvm.hotspot.opto.Compile; | |
66 import sun.jvm.hotspot.opto.InlineTree; | |
67 import sun.jvm.hotspot.runtime.CompiledVFrame; | |
68 import sun.jvm.hotspot.runtime.CompilerThread; | |
69 import sun.jvm.hotspot.runtime.JavaThread; | |
70 import sun.jvm.hotspot.runtime.JavaVFrame; | |
71 import sun.jvm.hotspot.runtime.Threads; | |
72 import sun.jvm.hotspot.runtime.VM; | |
53 import sun.jvm.hotspot.tools.ObjectHistogram; | 73 import sun.jvm.hotspot.tools.ObjectHistogram; |
74 import sun.jvm.hotspot.tools.PMap; | |
75 import sun.jvm.hotspot.tools.PStack; | |
54 import sun.jvm.hotspot.tools.StackTrace; | 76 import sun.jvm.hotspot.tools.StackTrace; |
55 import sun.jvm.hotspot.tools.jcore.ClassDump; | 77 import sun.jvm.hotspot.tools.jcore.ClassDump; |
56 import sun.jvm.hotspot.tools.jcore.ClassFilter; | 78 import sun.jvm.hotspot.tools.jcore.ClassFilter; |
79 import sun.jvm.hotspot.types.CIntegerType; | |
80 import sun.jvm.hotspot.types.Field; | |
81 import sun.jvm.hotspot.types.Type; | |
82 import sun.jvm.hotspot.types.basic.BasicType; | |
83 import sun.jvm.hotspot.ui.classbrowser.HTMLGenerator; | |
84 import sun.jvm.hotspot.ui.tree.CTypeTreeNodeAdapter; | |
85 import sun.jvm.hotspot.ui.tree.OopTreeNodeAdapter; | |
86 import sun.jvm.hotspot.ui.tree.SimpleTreeNode; | |
87 import sun.jvm.hotspot.utilities.AddressOps; | |
88 import sun.jvm.hotspot.utilities.Assert; | |
89 import sun.jvm.hotspot.utilities.HeapProgressThunk; | |
90 import sun.jvm.hotspot.utilities.LivenessPathElement; | |
91 import sun.jvm.hotspot.utilities.MethodArray; | |
92 import sun.jvm.hotspot.utilities.ObjectReader; | |
93 import sun.jvm.hotspot.utilities.PointerFinder; | |
94 import sun.jvm.hotspot.utilities.PointerLocation; | |
95 import sun.jvm.hotspot.utilities.ReversePtrs; | |
96 import sun.jvm.hotspot.utilities.ReversePtrsAnalysis; | |
97 import sun.jvm.hotspot.utilities.RobustOopDeterminator; | |
98 import sun.jvm.hotspot.utilities.SystemDictionaryHelper; | |
99 import sun.jvm.hotspot.utilities.soql.JSJavaFactory; | |
100 import sun.jvm.hotspot.utilities.soql.JSJavaFactoryImpl; | |
101 import sun.jvm.hotspot.utilities.soql.JSJavaScriptEngine; | |
57 | 102 |
58 public class CommandProcessor { | 103 public class CommandProcessor { |
59 public abstract static class DebuggerInterface { | 104 public abstract static class DebuggerInterface { |
60 public abstract HotSpotAgent getAgent(); | 105 public abstract HotSpotAgent getAgent(); |
61 public abstract boolean isAttached(); | 106 public abstract boolean isAttached(); |
1130 Address base = VM.getVM().getDebugger().parseAddress(t.nextToken()); | 1175 Address base = VM.getVM().getDebugger().parseAddress(t.nextToken()); |
1131 Address end = VM.getVM().getDebugger().parseAddress(t.nextToken()); | 1176 Address end = VM.getVM().getDebugger().parseAddress(t.nextToken()); |
1132 Klass klass = null; | 1177 Klass klass = null; |
1133 if (t.countTokens() == 1) { | 1178 if (t.countTokens() == 1) { |
1134 klass = SystemDictionaryHelper.findInstanceKlass(t.nextToken()); | 1179 klass = SystemDictionaryHelper.findInstanceKlass(t.nextToken()); |
1180 if (klass == null) { | |
1181 out.println("No such type."); | |
1182 return; | |
1183 } | |
1135 } | 1184 } |
1136 while (base != null && base.lessThan(end)) { | 1185 while (base != null && base.lessThan(end)) { |
1137 long step = stride; | 1186 long step = stride; |
1138 OopHandle handle = base.addOffsetToAsOopHandle(0); | 1187 OopHandle handle = base.addOffsetToAsOopHandle(0); |
1139 if (RobustOopDeterminator.oopLooksValid(handle)) { | 1188 if (RobustOopDeterminator.oopLooksValid(handle)) { |