hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java
changeset 13728 882756847a04
parent 10517 f92c9ff3a15f
child 18481 fa7f6ad24216
equal deleted inserted replaced
13727:caf5eb7dd4a7 13728:882756847a04
     1 /*
     1 /*
     2  * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   996                 int offset = 1;
   996                 int offset = 1;
   997                 annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameLocal(offset),
   997                 annoPanel.addAnnotation(new Annotation(curFrame.addressOfInterpreterFrameLocal(offset),
   998                                                        curFrame.addressOfInterpreterFrameLocal((int) interpreterFrameMethod.getMaxLocals() + offset),
   998                                                        curFrame.addressOfInterpreterFrameLocal((int) interpreterFrameMethod.getMaxLocals() + offset),
   999                                                        "Interpreter locals area for frame with SP = " + curFrame.getSP()));
   999                                                        "Interpreter locals area for frame with SP = " + curFrame.getSP()));
  1000               }
  1000               }
  1001               String methodAnno = "Interpreter frame methodOop";
  1001               String methodAnno = "Interpreter frame Method*";
  1002               if (interpreterFrameMethod == null) {
  1002               if (interpreterFrameMethod == null) {
  1003                 methodAnno += " (BAD OOP)";
  1003                 methodAnno += " (BAD OOP)";
  1004               }
  1004               }
  1005               Address a = curFrame.addressOfInterpreterFrameMethod();
  1005               Address a = curFrame.addressOfInterpreterFrameMethod();
  1006               annoPanel.addAnnotation(new Annotation(a, a.addOffsetTo(addressSize), methodAnno));
  1006               annoPanel.addAnnotation(new Annotation(a, a.addOffsetTo(addressSize), methodAnno));
  1052                               bad = false;
  1052                               bad = false;
  1053                               break;
  1053                               break;
  1054                             }
  1054                             }
  1055                           }
  1055                           }
  1056 
  1056 
  1057                           if (bad) {
       
  1058                             // Try perm gen
       
  1059                             if (heap.permGen().isIn(handle)) {
       
  1060                               anno = "PermGen ";
       
  1061                               bad = false;
       
  1062                             }
       
  1063                           }
       
  1064                         } else if (collHeap instanceof ParallelScavengeHeap) {
  1057                         } else if (collHeap instanceof ParallelScavengeHeap) {
  1065                           ParallelScavengeHeap heap = (ParallelScavengeHeap) collHeap;
  1058                           ParallelScavengeHeap heap = (ParallelScavengeHeap) collHeap;
  1066                           if (heap.youngGen().isIn(handle)) {
  1059                           if (heap.youngGen().isIn(handle)) {
  1067                             anno = "PSYoungGen ";
  1060                             anno = "PSYoungGen ";
  1068                             bad = false;
  1061                             bad = false;
  1069                           } else if (heap.oldGen().isIn(handle)) {
  1062                           } else if (heap.oldGen().isIn(handle)) {
  1070                             anno = "PSOldGen ";
  1063                             anno = "PSOldGen ";
  1071                             bad = false;
       
  1072                           } else if (heap.permGen().isIn(handle)) {
       
  1073                             anno = "PSPermGen ";
       
  1074                             bad = false;
  1064                             bad = false;
  1075                           }
  1065                           }
  1076                         } else {
  1066                         } else {
  1077                           // Optimistically assume the oop isn't bad
  1067                           // Optimistically assume the oop isn't bad
  1078                           anno = "[Unknown generation] ";
  1068                           anno = "[Unknown generation] ";