equal
deleted
inserted
replaced
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] "; |