public class sun.tools.jinfo.JInfo
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.jinfo.JInfo
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jinfo/JInfo;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
arraylength
ifne 2
1: invokestatic sun.tools.jinfo.JInfo.usage:()V
2: StackMap locals:
StackMap stack:
iconst_1
istore 1
start local 1 3: aload 0
iconst_0
aaload
astore 2
start local 2 4: aload 2
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
5: aload 2
ldc "-flags"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
6: aload 2
ldc "-sysprops"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
7: StackMap locals: int java.lang.String
StackMap stack:
aload 0
arraylength
iconst_2
if_icmpeq 14
aload 0
arraylength
iconst_3
if_icmpeq 14
8: invokestatic sun.tools.jinfo.JInfo.usage:()V
9: goto 14
StackMap locals:
StackMap stack:
10: aload 2
ldc "-flag"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
11: iconst_0
istore 1
12: goto 14
13: StackMap locals:
StackMap stack:
invokestatic sun.tools.jinfo.JInfo.usage:()V
14: StackMap locals:
StackMap stack:
iload 1
ifeq 17
15: aload 0
invokestatic sun.tools.jinfo.JInfo.runTool:([Ljava/lang/String;)V
16: goto 23
17: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_3
if_icmpne 22
18: aload 0
iconst_2
aaload
astore 3
start local 3 19: aload 0
iconst_1
aaload
astore 4
start local 4 20: aload 3
aload 4
invokestatic sun.tools.jinfo.JInfo.flag:(Ljava/lang/String;Ljava/lang/String;)V
end local 4 end local 3 21: goto 23
22: StackMap locals:
StackMap stack:
invokestatic sun.tools.jinfo.JInfo.usage:()V
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 args [Ljava/lang/String;
3 24 1 useSA Z
4 24 2 arg1 Ljava/lang/String;
19 21 3 pid Ljava/lang/String;
20 21 4 option Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
private static void runTool(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: ldc "sun.jvm.hotspot.tools.JInfo"
astore 1
start local 1 1: aload 1
invokestatic sun.tools.jinfo.JInfo.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 2: aload 2
ifnonnull 4
3: invokestatic sun.tools.jinfo.JInfo.usage:()V
4: StackMap locals: java.lang.String java.lang.Class
StackMap stack:
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc [Ljava/lang/String;
aastore
astore 3
start local 3 5: aload 2
ldc "main"
aload 3
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 6: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
astore 5
start local 5 7: aload 4
aconst_null
aload 5
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
8: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 args [Ljava/lang/String;
1 9 1 tool Ljava/lang/String;
2 9 2 c Ljava/lang/Class<*>;
5 9 3 argTypes [Ljava/lang/Class;
6 9 4 m Ljava/lang/reflect/Method;
7 9 5 invokeArgs [Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
private static java.lang.Class<?> loadClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
1: invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
2: invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
3: areturn
4: StackMap locals:
StackMap stack: java.lang.Exception
pop
5: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
Exception table:
from to target type
0 3 4 Class java.lang.Exception
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name
private static void flag(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokestatic sun.tools.jinfo.JInfo.attach:(Ljava/lang/String;)Lcom/sun/tools/attach/VirtualMachine;
astore 2
start local 2 1: aload 1
bipush 61
invokevirtual java.lang.String.indexOf:(I)I
istore 5
start local 5 2: iload 5
iconst_m1
if_icmpeq 7
3: aload 1
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 4: aload 1
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 6
start local 6 5: aload 2
checkcast sun.tools.attach.HotSpotVirtualMachine
aload 3
aload 6
invokevirtual sun.tools.attach.HotSpotVirtualMachine.setFlag:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
astore 4
end local 6 start local 4 6: goto 17
end local 4 end local 3 7: StackMap locals: java.lang.String java.lang.String com.sun.tools.attach.VirtualMachine top top int
StackMap stack:
aload 1
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 8: iload 6
tableswitch { // 43 - 45
43: 9
44: 15
45: 12
default: 15
}
9: StackMap locals: int
StackMap stack:
aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 10: aload 2
checkcast sun.tools.attach.HotSpotVirtualMachine
aload 3
ldc "1"
invokevirtual sun.tools.attach.HotSpotVirtualMachine.setFlag:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
astore 4
start local 4 11: goto 17
end local 4 end local 3 12: StackMap locals:
StackMap stack:
aload 1
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 13: aload 2
checkcast sun.tools.attach.HotSpotVirtualMachine
aload 3
ldc "0"
invokevirtual sun.tools.attach.HotSpotVirtualMachine.setFlag:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
astore 4
start local 4 14: goto 17
end local 4 end local 3 15: StackMap locals:
StackMap stack:
aload 1
astore 3
start local 3 16: aload 2
checkcast sun.tools.attach.HotSpotVirtualMachine
aload 3
invokevirtual sun.tools.attach.HotSpotVirtualMachine.printFlag:(Ljava/lang/String;)Ljava/io/InputStream;
astore 4
end local 6 start local 4 17: StackMap locals: java.lang.String java.lang.String com.sun.tools.attach.VirtualMachine java.lang.String java.io.InputStream int
StackMap stack:
aload 2
aload 4
invokestatic sun.tools.jinfo.JInfo.drain:(Lcom/sun/tools/attach/VirtualMachine;Ljava/io/InputStream;)V
18: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 pid Ljava/lang/String;
0 19 1 option Ljava/lang/String;
1 19 2 vm Lcom/sun/tools/attach/VirtualMachine;
4 7 3 flag Ljava/lang/String;
10 12 3 flag Ljava/lang/String;
13 15 3 flag Ljava/lang/String;
16 19 3 flag Ljava/lang/String;
6 7 4 in Ljava/io/InputStream;
11 12 4 in Ljava/io/InputStream;
14 15 4 in Ljava/io/InputStream;
17 19 4 in Ljava/io/InputStream;
2 19 5 index I
5 6 6 value Ljava/lang/String;
8 17 6 c C
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
pid
option
private static com.sun.tools.attach.VirtualMachine attach(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/sun/tools/attach/VirtualMachine;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokestatic com.sun.tools.attach.VirtualMachine.attach:(Ljava/lang/String;)Lcom/sun/tools/attach/VirtualMachine;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.Exception
astore 1
start local 1 3: aload 1
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
astore 2
start local 2 4: aload 2
ifnull 7
5: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: goto 8
7: StackMap locals: java.lang.Exception java.lang.String
StackMap stack:
aload 1
invokevirtual java.lang.Exception.printStackTrace:()V
8: StackMap locals:
StackMap stack:
iconst_1
invokestatic java.lang.System.exit:(I)V
9: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 pid Ljava/lang/String;
3 10 1 x Ljava/lang/Exception;
4 10 2 msg Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.lang.Exception
MethodParameters:
Name Flags
pid
private static void drain(com.sun.tools.attach.VirtualMachine, java.io.InputStream);
descriptor: (Lcom/sun/tools/attach/VirtualMachine;Ljava/io/InputStream;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: sipush 256
newarray 8
astore 2
start local 2 1: StackMap locals: byte[]
StackMap stack:
aload 1
aload 2
invokevirtual java.io.InputStream.read:([B)I
istore 3
start local 3 2: iload 3
ifle 5
3: new java.lang.String
dup
aload 2
iconst_0
iload 3
ldc "UTF-8"
invokespecial java.lang.String.<init>:([BIILjava/lang/String;)V
astore 4
start local 4 4: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 4
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
end local 4 5: StackMap locals: int
StackMap stack:
iload 3
6: ifgt 1
7: aload 1
invokevirtual java.io.InputStream.close:()V
8: aload 0
invokevirtual com.sun.tools.attach.VirtualMachine.detach:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 vm Lcom/sun/tools/attach/VirtualMachine;
0 10 1 in Ljava/io/InputStream;
1 10 2 b [B
2 10 3 n I
4 5 4 s Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
vm
in
private static void usage();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: ldc "sun.jvm.hotspot.tools.JInfo"
invokestatic sun.tools.jinfo.JInfo.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 0
start local 0 1: aload 0
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.Class
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 1
start local 1 4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "Usage:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: iload 1
ifeq 22
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jinfo [option] <pid>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " (to connect to running process)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jinfo [option] <executable <core>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " (to connect to a core file)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
10: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jinfo [option] [server_id@]<remote server IP or hostname>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " (to connect to remote debug server)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
12: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "where <option> is one of:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag <name> to print the value of the named VM flag"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
15: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag [+|-]<name> to enable or disable the named VM flag"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag <name>=<value> to set the named VM flag to the given value"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
17: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flags to print VM flags"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -sysprops to print Java system properties"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " <no option> to print both of the above"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
20: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -h | -help to print this help message"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
21: goto 30
22: StackMap locals: int
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " jinfo <option> <pid>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
23: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " (to connect to a running process)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
24: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc ""
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
25: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "where <option> is one of:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
26: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag <name> to print the value of the named VM flag"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
27: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag [+|-]<name> to enable or disable the named VM flag"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
28: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -flag <name>=<value> to set the named VM flag to the given value"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
29: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc " -h | -help to print this help message"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
30: StackMap locals:
StackMap stack:
iconst_1
invokestatic java.lang.System.exit:(I)V
31: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 32 0 c Ljava/lang/Class<*>;
4 32 1 usageSA Z
}
SourceFile: "JInfo.java"