src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Cdiff src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java

Print this page

        

*** 47,56 **** --- 47,57 ---- import sun.jvm.hotspot.code.CodeCacheVisitor; import sun.jvm.hotspot.code.NMethod; import sun.jvm.hotspot.debugger.Address; import sun.jvm.hotspot.debugger.OopHandle; import sun.jvm.hotspot.classfile.ClassLoaderDataGraph; + import sun.jvm.hotspot.memory.FileMapInfo; import sun.jvm.hotspot.memory.SymbolTable; import sun.jvm.hotspot.memory.SystemDictionary; import sun.jvm.hotspot.memory.Universe; import sun.jvm.hotspot.gc.shared.CollectedHeap; import sun.jvm.hotspot.gc.g1.G1CollectedHeap;
*** 87,96 **** --- 88,98 ---- import sun.jvm.hotspot.ui.tree.CTypeTreeNodeAdapter; import sun.jvm.hotspot.ui.tree.OopTreeNodeAdapter; import sun.jvm.hotspot.ui.tree.SimpleTreeNode; import sun.jvm.hotspot.utilities.AddressOps; import sun.jvm.hotspot.utilities.Assert; + import sun.jvm.hotspot.utilities.CompactHashTable; import sun.jvm.hotspot.utilities.HeapProgressThunk; import sun.jvm.hotspot.utilities.LivenessPathElement; import sun.jvm.hotspot.utilities.MethodArray; import sun.jvm.hotspot.utilities.ObjectReader; import sun.jvm.hotspot.utilities.PointerFinder;
*** 635,651 **** } } }, new Command("symboldump", "symboldump", false) { public void doit(Tokens t) { ! SymbolTable.getTheTable().symbolsDo(new SymbolTable.SymbolVisitor() { public void visit(Symbol sym) { sym.printValueOn(out); out.println(); } }); } }, new Command("flags", "flags [ flag | -nd ]", false) { public void doit(Tokens t) { int tokens = t.countTokens(); if (tokens != 0 && tokens != 1) { --- 637,663 ---- } } }, new Command("symboldump", "symboldump", false) { public void doit(Tokens t) { ! SymbolTable theTable = SymbolTable.getTheTable(); ! theTable.symbolsDo(new SymbolTable.SymbolVisitor() { ! public void visit(Symbol sym) { ! sym.printValueOn(out); ! out.println(); ! } ! }); ! CompactHashTable sharedTable = theTable.getSharedTable(); ! if (sharedTable != null) { ! sharedTable.symbolsDo(new CompactHashTable.SymbolVisitor() { public void visit(Symbol sym) { sym.printValueOn(out); out.println(); } }); } + } }, new Command("flags", "flags [ flag | -nd ]", false) { public void doit(Tokens t) { int tokens = t.countTokens(); if (tokens != 0 && tokens != 1) {
*** 1046,1055 **** --- 1058,1076 ---- CodeBlob blob = VM.getVM().getCodeCache().findBlobUnsafe(a); a = blob.headerBegin(); } if (node == null) { Type type = VM.getVM().getTypeDataBase().guessTypeForAddress(a); + if (type == null && VM.getVM().isSharingEnabled()) { + // Check if the value falls in the _md_region + Address loc1 = a.getAddressAt(0); + FileMapInfo cdsFileMapInfo = VM.getVM().getFileMapInfo(); + if (cdsFileMapInfo.inCopiedVtableSpace(loc1)) { + type = cdsFileMapInfo.getTypeForVptrAddress(loc1); + } + + } if (type != null) { out.println("Type is " + type.getName() + " (size of " + type.getSize() + ")"); node = new CTypeTreeNodeAdapter(a, type, null); } }
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File