< prev index next >

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

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 package sun.jvm.hotspot;
  26 
  27 import java.io.*;
  28 import java.awt.*;
  29 import java.awt.event.*;
  30 import javax.swing.*;
  31 import java.util.*;
  32 
  33 import sun.jvm.hotspot.code.*;
  34 import sun.jvm.hotspot.compiler.*;
  35 import sun.jvm.hotspot.debugger.*;
  36 import sun.jvm.hotspot.gc.parallel.*;
  37 import sun.jvm.hotspot.gc.shared.*;
  38 import sun.jvm.hotspot.gc.g1.*;

  39 import sun.jvm.hotspot.interpreter.*;
  40 import sun.jvm.hotspot.memory.*;
  41 import sun.jvm.hotspot.oops.*;
  42 import sun.jvm.hotspot.runtime.*;
  43 import sun.jvm.hotspot.ui.*;
  44 import sun.jvm.hotspot.ui.tree.*;
  45 import sun.jvm.hotspot.ui.classbrowser.*;
  46 import sun.jvm.hotspot.utilities.*;
  47 
  48 /** The top-level HotSpot Debugger. FIXME: make this an embeddable
  49     component! (Among other things, figure out what to do with the
  50     menu bar...) */
  51 
  52 public class HSDB implements ObjectHistogramPanel.Listener, SAListener {
  53   public static void main(String[] args) {
  54     new HSDB(args).run();
  55   }
  56 
  57   //--------------------------------------------------------------------------------
  58   // Internals only below this point


1091                             bad = false;
1092                           } else if (region.isHumongous()) {
1093                             anno = "Humongous ";
1094                             bad = false;
1095                           } else if (region.isPinned()) {
1096                             anno = "Pinned ";
1097                             bad = false;
1098                           } else if (region.isOld()) {
1099                             anno = "Old ";
1100                             bad = false;
1101                           }
1102                         } else if (collHeap instanceof ParallelScavengeHeap) {
1103                           ParallelScavengeHeap heap = (ParallelScavengeHeap) collHeap;
1104                           if (heap.youngGen().isIn(handle)) {
1105                             anno = "PSYoungGen ";
1106                             bad = false;
1107                           } else if (heap.oldGen().isIn(handle)) {
1108                             anno = "PSOldGen ";
1109                             bad = false;
1110                           }




1111                         } else {
1112                           // Optimistically assume the oop isn't bad
1113                           anno = "[Unknown generation] ";
1114                           bad = false;
1115                         }
1116 
1117                         if (!bad) {
1118                           try {
1119                             Oop oop = VM.getVM().getObjectHeap().newOop(handle);
1120                             if (oop instanceof Instance) {
1121                                 // Java-level objects always have workable names
1122                               anno = anno + oop.getKlass().getName().asString();
1123                             } else {
1124                               ByteArrayOutputStream bos = new ByteArrayOutputStream();
1125                               Oop.printOopValueOn(oop, new PrintStream(bos));
1126                               anno = anno + bos.toString();
1127                             }
1128                           }
1129                           catch (AddressException e) {
1130                             anno += "CORRUPT OOP";




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 package sun.jvm.hotspot;
  26 
  27 import java.io.*;
  28 import java.awt.*;
  29 import java.awt.event.*;
  30 import javax.swing.*;
  31 import java.util.*;
  32 
  33 import sun.jvm.hotspot.code.*;
  34 import sun.jvm.hotspot.compiler.*;
  35 import sun.jvm.hotspot.debugger.*;
  36 import sun.jvm.hotspot.gc.parallel.*;
  37 import sun.jvm.hotspot.gc.shared.*;
  38 import sun.jvm.hotspot.gc.g1.*;
  39 import sun.jvm.hotspot.gc.z.*;
  40 import sun.jvm.hotspot.interpreter.*;
  41 import sun.jvm.hotspot.memory.*;
  42 import sun.jvm.hotspot.oops.*;
  43 import sun.jvm.hotspot.runtime.*;
  44 import sun.jvm.hotspot.ui.*;
  45 import sun.jvm.hotspot.ui.tree.*;
  46 import sun.jvm.hotspot.ui.classbrowser.*;
  47 import sun.jvm.hotspot.utilities.*;
  48 
  49 /** The top-level HotSpot Debugger. FIXME: make this an embeddable
  50     component! (Among other things, figure out what to do with the
  51     menu bar...) */
  52 
  53 public class HSDB implements ObjectHistogramPanel.Listener, SAListener {
  54   public static void main(String[] args) {
  55     new HSDB(args).run();
  56   }
  57 
  58   //--------------------------------------------------------------------------------
  59   // Internals only below this point


1092                             bad = false;
1093                           } else if (region.isHumongous()) {
1094                             anno = "Humongous ";
1095                             bad = false;
1096                           } else if (region.isPinned()) {
1097                             anno = "Pinned ";
1098                             bad = false;
1099                           } else if (region.isOld()) {
1100                             anno = "Old ";
1101                             bad = false;
1102                           }
1103                         } else if (collHeap instanceof ParallelScavengeHeap) {
1104                           ParallelScavengeHeap heap = (ParallelScavengeHeap) collHeap;
1105                           if (heap.youngGen().isIn(handle)) {
1106                             anno = "PSYoungGen ";
1107                             bad = false;
1108                           } else if (heap.oldGen().isIn(handle)) {
1109                             anno = "PSOldGen ";
1110                             bad = false;
1111                           }
1112                         } else if (collHeap instanceof ZCollectedHeap) {
1113                           ZCollectedHeap heap = (ZCollectedHeap) collHeap;
1114                           anno ="ZHeap";
1115                           bad = false;
1116                         } else {
1117                           // Optimistically assume the oop isn't bad
1118                           anno = "[Unknown generation] ";
1119                           bad = false;
1120                         }
1121 
1122                         if (!bad) {
1123                           try {
1124                             Oop oop = VM.getVM().getObjectHeap().newOop(handle);
1125                             if (oop instanceof Instance) {
1126                                 // Java-level objects always have workable names
1127                               anno = anno + oop.getKlass().getName().asString();
1128                             } else {
1129                               ByteArrayOutputStream bos = new ByteArrayOutputStream();
1130                               Oop.printOopValueOn(oop, new PrintStream(bos));
1131                               anno = anno + bos.toString();
1132                             }
1133                           }
1134                           catch (AddressException e) {
1135                             anno += "CORRUPT OOP";


< prev index next >