< prev index next >

agent/src/share/classes/sun/jvm/hotspot/HSDB.java

Print this page

        

*** 34,43 **** --- 34,44 ---- import sun.jvm.hotspot.code.*; import sun.jvm.hotspot.compiler.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.gc_implementation.parallelScavenge.*; + import sun.jvm.hotspot.gc_implementation.shenandoah.*; import sun.jvm.hotspot.gc_interface.*; import sun.jvm.hotspot.interpreter.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*;
*** 990,1012 **** if (curFrame.getFP() != null) { annoPanel.addAnnotation(new Annotation(curFrame.getSP(), curFrame.getFP(), anno)); } else { ! if (VM.getVM().getCPU().equals("x86") || VM.getVM().getCPU().equals("amd64")) { ! // For C2, which has null frame pointers on x86/amd64 ! CodeBlob cb = VM.getVM().getCodeCache().findBlob(curFrame.getPC()); ! Address sp = curFrame.getSP(); ! if (Assert.ASSERTS_ENABLED) { ! Assert.that(cb.getFrameSize() > 0, "CodeBlob must have non-zero frame size"); ! } ! annoPanel.addAnnotation(new Annotation(sp, ! sp.addOffsetTo(cb.getFrameSize()), ! anno)); ! } else { ! Assert.that(VM.getVM().getCPU().equals("ia64"), "only ia64 should reach here"); } } // Add interpreter frame annotations if (curFrame.isInterpretedFrame()) { annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameExpressionStack(), --- 991,1009 ---- if (curFrame.getFP() != null) { annoPanel.addAnnotation(new Annotation(curFrame.getSP(), curFrame.getFP(), anno)); } else { ! // For C2, which has null frame pointers on x86/amd64/aarch64 ! CodeBlob cb = VM.getVM().getCodeCache().findBlob(curFrame.getPC()); ! Address sp = curFrame.getSP(); ! if (Assert.ASSERTS_ENABLED) { ! Assert.that(cb.getFrameSize() > 0, "CodeBlob must have non-zero frame size"); } + annoPanel.addAnnotation(new Annotation(sp, + sp.addOffsetTo(cb.getFrameSize()), + anno)); } // Add interpreter frame annotations if (curFrame.isInterpretedFrame()) { annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameExpressionStack(),
*** 1088,1097 **** --- 1085,1098 ---- bad = false; } else if (heap.oldGen().isIn(handle)) { anno = "PSOldGen "; bad = false; } + } else if (collHeap instanceof ShenandoahHeap) { + ShenandoahHeap heap = (ShenandoahHeap) collHeap; + anno = "ShenandoahHeap "; + bad = false; } else { // Optimistically assume the oop isn't bad anno = "[Unknown generation] "; bad = false; }
< prev index next >