public class sun.jvm.hotspot.DebugServer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.jvm.hotspot.DebugServer
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/jvm/hotspot/DebugServer;
private void usage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "usage: java "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " <pid> [server id]"
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
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " or: java "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " <executable> <core> [server id]"
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
2: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "\"pid\" must be the process ID of a HotSpot process."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "If reading a core file, \"executable\" must (currently) be the"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "full path name to the precise java executable which generated"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "the core file (not, on Solaris, the \"java\" wrapper script in"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
6: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "the \"bin\" subdirectory of the JDK.)"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "The \"server id\" is a unique name for a specific remote debuggee."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: iconst_1
invokestatic java.lang.System.exit:(I)V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/jvm/hotspot/DebugServer;
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new sun.jvm.hotspot.DebugServer
dup
invokespecial sun.jvm.hotspot.DebugServer.<init>:()V
aload 0
invokevirtual sun.jvm.hotspot.DebugServer.run:([Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 args [Ljava/lang/String;
MethodParameters:
Name Flags
args
private void run(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 1
arraylength
iconst_1
if_icmplt 1
aload 1
arraylength
iconst_3
if_icmple 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.jvm.hotspot.DebugServer.usage:()V
2: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
3: aload 0
invokevirtual sun.jvm.hotspot.DebugServer.usage:()V
4: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 5: iconst_0
istore 3
start local 3 6: aconst_null
astore 4
start local 4 7: aconst_null
astore 5
start local 5 8: aconst_null
astore 6
start local 6 9: aload 1
arraylength
tableswitch { // 1 - 3
1: 10
2: 16
3: 26
default: 30
}
10: StackMap locals: sun.jvm.hotspot.DebugServer java.lang.String[] int int java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 1
iconst_0
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
11: iconst_1
istore 3
12: goto 30
StackMap locals:
StackMap stack: java.lang.NumberFormatException
13: pop
14: aload 0
invokevirtual sun.jvm.hotspot.DebugServer.usage:()V
15: goto 30
16: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 2
17: iconst_1
istore 3
18: aload 1
iconst_1
aaload
astore 6
19: goto 30
StackMap locals:
StackMap stack: java.lang.NumberFormatException
20: pop
21: iconst_m1
istore 2
22: iconst_0
istore 3
23: aload 1
iconst_0
aaload
astore 5
24: aload 1
iconst_1
aaload
astore 4
25: goto 30
26: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
astore 5
27: aload 1
iconst_1
aaload
astore 4
28: aload 1
iconst_2
aaload
astore 6
29: goto 30
30: StackMap locals:
StackMap stack:
new sun.jvm.hotspot.HotSpotAgent
dup
invokespecial sun.jvm.hotspot.HotSpotAgent.<init>:()V
astore 7
start local 7 31: iload 3
ifeq 35
32: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Attaching to process ID "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " and starting RMI services, please wait..."
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
33: aload 7
iload 2
aload 6
invokevirtual sun.jvm.hotspot.HotSpotAgent.startServer:(ILjava/lang/String;)V
34: goto 47
35: StackMap locals: sun.jvm.hotspot.HotSpotAgent
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Attaching to core "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
36: ldc " from executable "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and starting RMI services, please wait..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
38: aload 7
aload 5
aload 4
aload 6
invokevirtual sun.jvm.hotspot.HotSpotAgent.startServer:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
39: goto 47
40: StackMap locals:
StackMap stack: sun.jvm.hotspot.debugger.DebuggerException
astore 8
start local 8 41: iload 3
ifeq 44
42: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error attaching to process or starting server: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
43: goto 45
44: StackMap locals: sun.jvm.hotspot.debugger.DebuggerException
StackMap stack:
getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error attaching to core file or starting server: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 8
invokevirtual sun.jvm.hotspot.debugger.DebuggerException.printStackTrace:()V
46: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 8 47: StackMap locals:
StackMap stack:
invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
new java.lang.Thread
dup
48: new sun.jvm.hotspot.DebugServer$1
dup
aload 0
aload 7
invokespecial sun.jvm.hotspot.DebugServer$1.<init>:(Lsun/jvm/hotspot/DebugServer;Lsun/jvm/hotspot/HotSpotAgent;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
49: invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
50: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Debugger attached and RMI services started."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
51: return
end local 7 end local 6 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 52 0 this Lsun/jvm/hotspot/DebugServer;
0 52 1 args [Ljava/lang/String;
5 52 2 pid I
6 52 3 usePid Z
7 52 4 coreFileName Ljava/lang/String;
8 52 5 javaExecutableName Ljava/lang/String;
9 52 6 serverID Ljava/lang/String;
31 52 7 agent Lsun/jvm/hotspot/HotSpotAgent;
41 47 8 e Lsun/jvm/hotspot/debugger/DebuggerException;
Exception table:
from to target type
10 12 13 Class java.lang.NumberFormatException
16 19 20 Class java.lang.NumberFormatException
31 39 40 Class sun.jvm.hotspot.debugger.DebuggerException
MethodParameters:
Name Flags
args
}
SourceFile: "DebugServer.java"
NestMembers:
sun.jvm.hotspot.DebugServer$1
InnerClasses:
sun.jvm.hotspot.DebugServer$1