< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/StackTrace.java

Print this page
rev 54717 : imported patch 8223306


  55         this.concurrentLocks = concurrentLocks;
  56     }
  57 
  58     public void run(java.io.PrintStream tty) {
  59         // Ready to go with the database...
  60         try {
  61             // print deadlock information before stack trace
  62             DeadlockDetector.print(tty);
  63         } catch (Exception exp) {
  64             exp.printStackTrace();
  65             tty.println("Can't print deadlocks:" + exp.getMessage());
  66         }
  67 
  68         try {
  69             ConcurrentLocksPrinter concLocksPrinter = null;
  70             if (concurrentLocks) {
  71                 concLocksPrinter = new ConcurrentLocksPrinter();
  72             }
  73             Threads threads = VM.getVM().getThreads();
  74             int i = 1;
  75             for (JavaThread cur = threads.first(); cur != null; cur = cur.next(), i++) {

  76                 if (cur.isJavaThread()) {
  77                     cur.printThreadInfoOn(tty);
  78                     try {
  79                         int count = 0;
  80 
  81                         for (JavaVFrame vf = cur.getLastJavaVFrameDbg(); vf != null; vf = vf.javaSender()) {
  82                             Method method = vf.getMethod();
  83                             tty.print(" - " + method.externalNameAndSignature() +
  84                             " @bci=" + vf.getBCI());
  85 
  86                             int lineNumber = method.getLineNumberFromBCI(vf.getBCI());
  87                             if (lineNumber != -1) {
  88                                 tty.print(", line=" + lineNumber);
  89                             }
  90 
  91                             if (verbose) {
  92                                 Address pc = vf.getFrame().getPC();
  93                                 if (pc != null) {
  94                                     tty.print(", pc=" + pc);
  95                                 }




  55         this.concurrentLocks = concurrentLocks;
  56     }
  57 
  58     public void run(java.io.PrintStream tty) {
  59         // Ready to go with the database...
  60         try {
  61             // print deadlock information before stack trace
  62             DeadlockDetector.print(tty);
  63         } catch (Exception exp) {
  64             exp.printStackTrace();
  65             tty.println("Can't print deadlocks:" + exp.getMessage());
  66         }
  67 
  68         try {
  69             ConcurrentLocksPrinter concLocksPrinter = null;
  70             if (concurrentLocks) {
  71                 concLocksPrinter = new ConcurrentLocksPrinter();
  72             }
  73             Threads threads = VM.getVM().getThreads();
  74             int i = 1;
  75             for (int k = 0; k < threads.getNumberOfThreads(); k++) {
  76                 JavaThread cur = threads.getJavaThreadAt(k);
  77                 if (cur.isJavaThread()) {
  78                     cur.printThreadInfoOn(tty);
  79                     try {
  80                         int count = 0;
  81 
  82                         for (JavaVFrame vf = cur.getLastJavaVFrameDbg(); vf != null; vf = vf.javaSender()) {
  83                             Method method = vf.getMethod();
  84                             tty.print(" - " + method.externalNameAndSignature() +
  85                             " @bci=" + vf.getBCI());
  86 
  87                             int lineNumber = method.getLineNumberFromBCI(vf.getBCI());
  88                             if (lineNumber != -1) {
  89                                 tty.print(", line=" + lineNumber);
  90                             }
  91 
  92                             if (verbose) {
  93                                 Address pc = vf.getFrame().getPC();
  94                                 if (pc != null) {
  95                                     tty.print(", pc=" + pc);
  96                                 }


< prev index next >