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 }
|