< prev index next >

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

Print this page




 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();


< prev index next >