975 "\n@bci " + bci + lineNumberAnno;
976 } catch (Exception e) {
977 anno += "\n(ERROR while iterating vframes for frame " + curFrame + ")";
978 }
979
980 nextVFrame = curVFrame.javaSender();
981 if (nextVFrame != null) {
982 nextFrame = nextVFrame.getFrame();
983 }
984 } while (nextVFrame != null && nextFrame.equals(curFrame));
985
986 if (shouldSkipOopMaps) {
987 anno = anno + "\nNOTE: null or empty OopMapSet found for this CodeBlob";
988 }
989
990 if (curFrame.getFP() != null) {
991 annoPanel.addAnnotation(new Annotation(curFrame.getSP(),
992 curFrame.getFP(),
993 anno));
994 } else {
995 if (VM.getVM().getCPU().equals("x86") || VM.getVM().getCPU().equals("amd64")) {
996 // For C2, which has null frame pointers on x86/amd64
997 CodeBlob cb = VM.getVM().getCodeCache().findBlob(curFrame.getPC());
998 Address sp = curFrame.getSP();
999 if (Assert.ASSERTS_ENABLED) {
1000 Assert.that(cb.getFrameSize() > 0, "CodeBlob must have non-zero frame size");
1001 }
1002 annoPanel.addAnnotation(new Annotation(sp,
1003 sp.addOffsetTo(cb.getFrameSize()),
1004 anno));
1005 } else {
1006 Assert.that(VM.getVM().getCPU().equals("ia64"), "only ia64 should reach here");
1007 }
1008 }
1009
1010 // Add interpreter frame annotations
1011 if (curFrame.isInterpretedFrame()) {
1012 annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameExpressionStack(),
1013 curFrame.addressOfInterpreterFrameTOS(),
1014 "Interpreter expression stack"));
1015 Address monBegin = curFrame.interpreterFrameMonitorBegin().address();
|
975 "\n@bci " + bci + lineNumberAnno;
976 } catch (Exception e) {
977 anno += "\n(ERROR while iterating vframes for frame " + curFrame + ")";
978 }
979
980 nextVFrame = curVFrame.javaSender();
981 if (nextVFrame != null) {
982 nextFrame = nextVFrame.getFrame();
983 }
984 } while (nextVFrame != null && nextFrame.equals(curFrame));
985
986 if (shouldSkipOopMaps) {
987 anno = anno + "\nNOTE: null or empty OopMapSet found for this CodeBlob";
988 }
989
990 if (curFrame.getFP() != null) {
991 annoPanel.addAnnotation(new Annotation(curFrame.getSP(),
992 curFrame.getFP(),
993 anno));
994 } else {
995 if (VM.getVM().getCPU().equals("x86") || VM.getVM().getCPU().equals("amd64") ||
996 VM.getVM().getCPU().equals("aarch64")) {
997 // For C2, which has null frame pointers on x86/amd64
998 CodeBlob cb = VM.getVM().getCodeCache().findBlob(curFrame.getPC());
999 Address sp = curFrame.getSP();
1000 if (Assert.ASSERTS_ENABLED) {
1001 Assert.that(cb.getFrameSize() > 0, "CodeBlob must have non-zero frame size");
1002 }
1003 annoPanel.addAnnotation(new Annotation(sp,
1004 sp.addOffsetTo(cb.getFrameSize()),
1005 anno));
1006 } else {
1007 Assert.that(VM.getVM().getCPU().equals("ia64"), "only ia64 should reach here");
1008 }
1009 }
1010
1011 // Add interpreter frame annotations
1012 if (curFrame.isInterpretedFrame()) {
1013 annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameExpressionStack(),
1014 curFrame.addressOfInterpreterFrameTOS(),
1015 "Interpreter expression stack"));
1016 Address monBegin = curFrame.interpreterFrameMonitorBegin().address();
|