src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/CommandProcessor.java
changeset 54955 46409371a691
parent 53637 4366a1e4a021
equal deleted inserted replaced
54954:6ec71a88b68e 54955:46409371a691
   534                     }
   534                     }
   535                 }
   535                 }
   536                 // Not an address
   536                 // Not an address
   537                 boolean all = name.equals("-a");
   537                 boolean all = name.equals("-a");
   538                 Threads threads = VM.getVM().getThreads();
   538                 Threads threads = VM.getVM().getThreads();
   539                 for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
   539                 for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
   540                     JavaThread thread = threads.getJavaThreadAt(i);
   540                     ByteArrayOutputStream bos = new ByteArrayOutputStream();
   541                     ByteArrayOutputStream bos = new ByteArrayOutputStream();
   541                     thread.printThreadIDOn(new PrintStream(bos));
   542                     thread.printThreadIDOn(new PrintStream(bos));
   542                     if (all || bos.toString().equals(name)) {
   543                     if (all || bos.toString().equals(name)) {
   543                         if (thread instanceof CompilerThread) {
   544                         if (thread instanceof CompilerThread) {
   544                             CompilerThread ct = (CompilerThread)thread;
   545                             CompilerThread ct = (CompilerThread)thread;
   896                     usage();
   897                     usage();
   897                 } else {
   898                 } else {
   898                     String name = t.nextToken();
   899                     String name = t.nextToken();
   899                     boolean all = name.equals("-a");
   900                     boolean all = name.equals("-a");
   900                     Threads threads = VM.getVM().getThreads();
   901                     Threads threads = VM.getVM().getThreads();
   901                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
   902                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
   903                         JavaThread thread = threads.getJavaThreadAt(i);
   902                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   904                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   903                         thread.printThreadIDOn(new PrintStream(bos));
   905                         thread.printThreadIDOn(new PrintStream(bos));
   904                         if (all || bos.toString().equals(name)) {
   906                         if (all || bos.toString().equals(name)) {
   905                           if (thread instanceof CompilerThread) {
   907                           if (thread instanceof CompilerThread) {
   906                             CompilerThread ct = (CompilerThread)thread;
   908                             CompilerThread ct = (CompilerThread)thread;
   925                     usage();
   927                     usage();
   926                 } else {
   928                 } else {
   927                     String name = t.nextToken();
   929                     String name = t.nextToken();
   928                     boolean all = name.equals("-a");
   930                     boolean all = name.equals("-a");
   929                     Threads threads = VM.getVM().getThreads();
   931                     Threads threads = VM.getVM().getThreads();
   930                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
   932                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
   933                         JavaThread thread = threads.getJavaThreadAt(i);
   931                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   934                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   932                         thread.printThreadIDOn(new PrintStream(bos));
   935                         thread.printThreadIDOn(new PrintStream(bos));
   933                         if (all || bos.toString().equals(name)) {
   936                         if (all || bos.toString().equals(name)) {
   934                           if (thread instanceof CompilerThread) {
   937                           if (thread instanceof CompilerThread) {
   935                             CompilerThread ct = (CompilerThread)thread;
   938                             CompilerThread ct = (CompilerThread)thread;
   952                     usage();
   955                     usage();
   953                 } else {
   956                 } else {
   954                     String name = t.nextToken();
   957                     String name = t.nextToken();
   955                     boolean all = name.equals("-a");
   958                     boolean all = name.equals("-a");
   956                     Threads threads = VM.getVM().getThreads();
   959                     Threads threads = VM.getVM().getThreads();
   957                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
   960                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
   961                         JavaThread thread = threads.getJavaThreadAt(i);
   958                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   962                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
   959                         thread.printThreadIDOn(new PrintStream(bos));
   963                         thread.printThreadIDOn(new PrintStream(bos));
   960                         if (all || bos.toString().equals(name)) {
   964                         if (all || bos.toString().equals(name)) {
   961                             if (thread instanceof CompilerThread) {
   965                             if (thread instanceof CompilerThread) {
   962                                 CompilerThread ct = (CompilerThread)thread;
   966                                 CompilerThread ct = (CompilerThread)thread;
  1435                 String type = t.nextToken();
  1439                 String type = t.nextToken();
  1436                 final Address value = VM.getVM().getDebugger().parseAddress(t.nextToken());
  1440                 final Address value = VM.getVM().getDebugger().parseAddress(t.nextToken());
  1437                 final long stride = VM.getVM().getAddressSize();
  1441                 final long stride = VM.getVM().getAddressSize();
  1438                 if (type.equals("threads")) {
  1442                 if (type.equals("threads")) {
  1439                     Threads threads = VM.getVM().getThreads();
  1443                     Threads threads = VM.getVM().getThreads();
  1440                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
  1444                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
  1445                         JavaThread thread = threads.getJavaThreadAt(i);
  1441                         Address base = thread.getStackBase();
  1446                         Address base = thread.getStackBase();
  1442                         Address end = thread.getLastJavaSP();
  1447                         Address end = thread.getLastJavaSP();
  1443                         if (end == null) continue;
  1448                         if (end == null) continue;
  1444                         if (end.lessThan(base)) {
  1449                         if (end.lessThan(base)) {
  1445                             Address tmp = base;
  1450                             Address tmp = base;
  1559                     usage();
  1564                     usage();
  1560                 } else {
  1565                 } else {
  1561                     String name = t.nextToken();
  1566                     String name = t.nextToken();
  1562                     Threads threads = VM.getVM().getThreads();
  1567                     Threads threads = VM.getVM().getThreads();
  1563                     boolean all = name.equals("-a");
  1568                     boolean all = name.equals("-a");
  1564                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
  1569                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
  1570                         JavaThread thread = threads.getJavaThreadAt(i);
  1565                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  1571                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  1566                         thread.printThreadIDOn(new PrintStream(bos));
  1572                         thread.printThreadIDOn(new PrintStream(bos));
  1567                         if (all || bos.toString().equals(name)) {
  1573                         if (all || bos.toString().equals(name)) {
  1568                             out.println("Thread " + bos.toString() + " Address: " + thread.getAddress());
  1574                             out.println("Thread " + bos.toString() + " Address: " + thread.getAddress());
  1569                             HTMLGenerator gen = new HTMLGenerator(false);
  1575                             HTMLGenerator gen = new HTMLGenerator(false);
  1588                     usage();
  1594                     usage();
  1589                 } else {
  1595                 } else {
  1590                     String name = t.nextToken();
  1596                     String name = t.nextToken();
  1591                     Threads threads = VM.getVM().getThreads();
  1597                     Threads threads = VM.getVM().getThreads();
  1592                     boolean all = name.equals("-a");
  1598                     boolean all = name.equals("-a");
  1593                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
  1599                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
  1600                         JavaThread thread = threads.getJavaThreadAt(i);
  1594                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  1601                         ByteArrayOutputStream bos = new ByteArrayOutputStream();
  1595                         thread.printThreadIDOn(new PrintStream(bos));
  1602                         thread.printThreadIDOn(new PrintStream(bos));
  1596                         if (all || bos.toString().equals(name)) {
  1603                         if (all || bos.toString().equals(name)) {
  1597                             out.println("Thread " + bos.toString() + " Address " + thread.getAddress());
  1604                             out.println("Thread " + bos.toString() + " Address " + thread.getAddress());
  1598                             thread.printInfoOn(out);
  1605                             thread.printInfoOn(out);
  1611             public void doit(Tokens t) {
  1618             public void doit(Tokens t) {
  1612                 if (t.countTokens() != 0) {
  1619                 if (t.countTokens() != 0) {
  1613                     usage();
  1620                     usage();
  1614                 } else {
  1621                 } else {
  1615                     Threads threads = VM.getVM().getThreads();
  1622                     Threads threads = VM.getVM().getThreads();
  1616                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
  1623                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
  1624                         JavaThread thread = threads.getJavaThreadAt(i);
  1617                         thread.printThreadIDOn(out);
  1625                         thread.printThreadIDOn(out);
  1618                         out.println(" " + thread.getThreadName());
  1626                         out.println(" " + thread.getThreadName());
  1619                         thread.printInfoOn(out);
  1627                         thread.printInfoOn(out);
  1620                         out.println("\n...");
  1628                         out.println("\n...");
  1621                     }
  1629                     }
  1629                     usage();
  1637                     usage();
  1630                 } else {
  1638                 } else {
  1631                     ArrayList nmethods = new ArrayList();
  1639                     ArrayList nmethods = new ArrayList();
  1632                     Threads threads = VM.getVM().getThreads();
  1640                     Threads threads = VM.getVM().getThreads();
  1633                     HTMLGenerator gen = new HTMLGenerator(false);
  1641                     HTMLGenerator gen = new HTMLGenerator(false);
  1634                     for (JavaThread thread = threads.first(); thread != null; thread = thread.next()) {
  1642                     for (int i = 0; i < threads.getNumberOfThreads(); i++) {
       
  1643                         JavaThread thread = threads.getJavaThreadAt(i);
  1635                         try {
  1644                         try {
  1636                             for (JavaVFrame vf = thread.getLastJavaVFrameDbg(); vf != null; vf = vf.javaSender()) {
  1645                             for (JavaVFrame vf = thread.getLastJavaVFrameDbg(); vf != null; vf = vf.javaSender()) {
  1637                                 if (vf instanceof CompiledVFrame) {
  1646                                 if (vf instanceof CompiledVFrame) {
  1638                                     NMethod c = ((CompiledVFrame)vf).getCode();
  1647                                     NMethod c = ((CompiledVFrame)vf).getCode();
  1639                                     if (!nmethods.contains(c)) {
  1648                                     if (!nmethods.contains(c)) {