6606002: jinfo doesn't detect dynamic vm flags changing
authorsla
Thu, 14 Nov 2013 19:30:07 +0100
changeset 21731 0bc1bccadabe
parent 21730 586cd2774109
child 21732 559f8c33f99b
6606002: jinfo doesn't detect dynamic vm flags changing Reviewed-by: coleenp, jbachorik, sspitsyn
hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java	Wed Nov 13 16:35:55 2013 -0800
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/JInfo.java	Thu Nov 14 19:30:07 2013 +0100
@@ -24,8 +24,9 @@
 
 package sun.jvm.hotspot.tools;
 
-import sun.jvm.hotspot.runtime.*;
 import sun.jvm.hotspot.debugger.JVMDebugger;
+import sun.jvm.hotspot.runtime.Arguments;
+import sun.jvm.hotspot.runtime.VM;
 
 public class JInfo extends Tool {
     public JInfo() {
@@ -138,14 +139,33 @@
     }
 
     private void printVMFlags() {
+        VM.Flag[] flags = VM.getVM().getCommandLineFlags();
+        System.out.print("Non-default VM flags: ");
+        for (VM.Flag flag : flags) {
+            if (flag.getOrigin() == 0) {
+                // only print flags which aren't their defaults
+                continue;
+            }
+            if (flag.isBool()) {
+                String onoff = flag.getBool() ? "+" : "-";
+                System.out.print("-XX:" + onoff + flag.getName() + " ");
+            } else {
+                System.out.print("-XX:" + flag.getName() + "="
+                        + flag.getValue() + " ");
+            }
+        }
+        System.out.println();
+
+        System.out.print("Command line: ");
         String str = Arguments.getJVMFlags();
         if (str != null) {
-            System.out.println(str);
+            System.out.print(str + " ");
         }
         str = Arguments.getJVMArgs();
         if (str != null) {
-            System.out.println(str);
+            System.out.print(str);
         }
+        System.out.println();
     }
 
     private int mode;