class jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder
super_class: java.lang.Object
{
private final boolean includeDebug;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String debugExt;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder cmdBuilder;
descriptor: Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String strip;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void <init>(boolean, java.lang.String, jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder, java.lang.String);
descriptor: (ZLjava/lang/String;Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.includeDebug:Z
2: aload 0
aload 2
putfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.debugExt:Ljava/lang/String;
3: aload 0
aload 3
putfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.cmdBuilder:Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
4: aload 0
aload 4
putfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.strip:Ljava/lang/String;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 6 1 includeDebug Z
0 6 2 debugExt Ljava/lang/String;
0 6 3 cmdBuilder Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
0 6 4 strip Ljava/lang/String;
MethodParameters:
Name Flags
includeDebug
debugExt
cmdBuilder
strip
private java.util.Optional<jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinary> build(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
astore 3
start local 3 2: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
astore 4
start local 4 3: aload 4
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 5
start local 5 4: new java.lang.StringBuilder
dup
ldc "strip-native-debug-symbols"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
astore 2
5: aload 2
aload 5
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 6
start local 6 6: new java.lang.StringBuilder
dup
aload 5
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 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.debugExt:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 7: aconst_null
astore 8
aconst_null
astore 9
8: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.content:()Ljava/io/InputStream;
astore 10
start local 10 9: aload 10
aload 6
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
pop2
10: aload 10
ifnull 16
aload 10
invokevirtual java.io.InputStream.close:()V
goto 16
StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
11: astore 8
aload 10
ifnull 12
aload 10
invokevirtual java.io.InputStream.close:()V
end local 10 StackMap locals:
StackMap stack:
12: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 9
aload 8
ifnonnull 14
aload 9
astore 8
goto 15
StackMap locals:
StackMap stack:
14: aload 8
aload 9
if_acmpeq 15
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
15: aload 8
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.includeDebug:Z
ifeq 29
17: aload 2
aload 7
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.resolve:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
astore 8
start local 8 18: new java.lang.StringBuilder
dup
aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
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 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.debugExt:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 9
start local 9 19: aload 0
aload 6
20: aload 8
21: aload 7
22: invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.createDebugSymbolsFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/lang/String;)[B
astore 10
start local 10 23: aload 10
ifnull 29
24: aload 9
25: aload 1
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.type:()Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;
26: aload 10
27: invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolEntry$Type;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 11
start local 11 28: aload 11
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
astore 3
end local 11 end local 10 end local 9 end local 8 29: StackMap locals:
StackMap stack:
aload 0
aload 6
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.stripBinary:(Ljava/nio/file/Path;)Z
ifne 36
30: getstatic jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin.DEBUG:Z
ifeq 32
31: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "DEBUG: Stripping debug info failed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
32: StackMap locals:
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
astore 13
33: aload 2
ifnull 35
34: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.deleteDirRecursivelyIgnoreResult:(Ljava/nio/file/Path;)V
35: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String top top top top top java.util.Optional
StackMap stack:
aload 13
areturn
36: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.includeDebug:Z
ifeq 47
aload 0
aload 2
37: aload 5
38: aload 7
39: invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.addGnuDebugLink:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Z
40: ifne 47
41: getstatic jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin.DEBUG:Z
ifeq 43
42: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "DEBUG: Creating debug link failed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
astore 13
44: aload 2
ifnull 46
45: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.deleteDirRecursivelyIgnoreResult:(Ljava/nio/file/Path;)V
46: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String top top top top top java.util.Optional
StackMap stack:
aload 13
areturn
47: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String
StackMap stack:
aload 6
invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
astore 9
start local 9 48: aload 1
aload 9
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.copyWithContent:([B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 10
start local 10 49: new jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinary
dup
aload 10
aload 3
invokespecial jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinary.<init>:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;Ljava/util/Optional;)V
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
astore 13
50: aload 2
ifnull 52
51: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.deleteDirRecursivelyIgnoreResult:(Ljava/nio/file/Path;)V
52: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional java.nio.file.Path java.lang.String java.nio.file.Path java.lang.String top byte[] jdk.tools.jlink.plugin.ResourcePoolEntry top top java.util.Optional
StackMap stack:
aload 13
areturn
end local 10 end local 9 end local 7 end local 6 end local 5 end local 4 53: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional
StackMap stack: java.lang.Exception
astore 4
start local 4 54: new jdk.tools.jlink.plugin.PluginException
dup
aload 4
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 55: StackMap locals:
StackMap stack: java.lang.Throwable
astore 12
56: aload 2
ifnull 58
57: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.deleteDirRecursivelyIgnoreResult:(Ljava/nio/file/Path;)V
58: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder jdk.tools.jlink.plugin.ResourcePoolEntry java.nio.file.Path java.util.Optional top top top top top top top top java.lang.Throwable
StackMap stack:
aload 12
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 59 1 resource Ljdk/tools/jlink/plugin/ResourcePoolEntry;
1 59 2 tempDir Ljava/nio/file/Path;
2 59 3 debugInfo Ljava/util/Optional<Ljdk/tools/jlink/plugin/ResourcePoolEntry;>;
3 53 4 resPath Ljava/nio/file/Path;
4 53 5 relativeFileName Ljava/lang/String;
6 53 6 resourceFileBinary Ljava/nio/file/Path;
7 53 7 relativeDbgFileName Ljava/lang/String;
9 12 10 in Ljava/io/InputStream;
18 29 8 resourceFileDebugSymbols Ljava/nio/file/Path;
19 29 9 debugEntryPath Ljava/lang/String;
23 29 10 debugInfoBytes [B
28 29 11 debugEntry Ljdk/tools/jlink/plugin/ResourcePoolEntry;
48 53 9 strippedBytes [B
49 53 10 strippedResource Ljdk/tools/jlink/plugin/ResourcePoolEntry;
54 55 4 e Ljava/lang/Exception;
Exception table:
from to target type
9 10 11 any
8 13 13 any
2 33 53 Class java.io.IOException
36 44 53 Class java.io.IOException
47 50 53 Class java.io.IOException
2 33 53 Class java.lang.InterruptedException
36 44 53 Class java.lang.InterruptedException
47 50 53 Class java.lang.InterruptedException
2 33 55 any
36 44 55 any
47 50 55 any
53 55 55 any
Signature: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljava/util/Optional<Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinary;>;
MethodParameters:
Name Flags
resource
private boolean stripBinary(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.cmdBuilder:Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.strip:Ljava/lang/String;
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "-g"
aastore
dup
iconst_1
2: aload 2
aastore
3: invokeinterface jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder.build:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
astore 3
start local 3 4: aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.createProcessBuilder:(Ljava/util/List;)Ljava/lang/ProcessBuilder;
astore 4
start local 4 5: aload 4
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 5
start local 5 6: aload 5
invokevirtual java.lang.Process.waitFor:()I
istore 6
start local 6 7: iload 6
ifne 8
iconst_1
ireturn
StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder java.nio.file.Path java.lang.String java.util.List java.lang.ProcessBuilder java.lang.Process int
StackMap stack:
8: iconst_0
ireturn
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 9 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 9 1 binFile Ljava/nio/file/Path;
1 9 2 filePath Ljava/lang/String;
4 9 3 stripCmdLine Ljava/util/List<Ljava/lang/String;>;
5 9 4 builder Ljava/lang/ProcessBuilder;
6 9 5 stripProc Ljava/lang/Process;
7 9 6 retval I
Exceptions:
throws java.lang.InterruptedException, java.io.IOException
MethodParameters:
Name Flags
binFile
private boolean addGnuDebugLink(java.nio.file.Path, java.lang.String, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.cmdBuilder:Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.strip:Ljava/lang/String;
iconst_2
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "--add-gnu-debuglink="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
dup
iconst_1
2: aload 2
aastore
3: invokeinterface jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder.build:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
astore 4
start local 4 4: aload 0
aload 4
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.createProcessBuilder:(Ljava/util/List;)Ljava/lang/ProcessBuilder;
astore 5
start local 5 5: aload 5
aload 1
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
invokevirtual java.lang.ProcessBuilder.directory:(Ljava/io/File;)Ljava/lang/ProcessBuilder;
pop
6: aload 5
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 6
start local 6 7: aload 6
invokevirtual java.lang.Process.waitFor:()I
istore 7
start local 7 8: iload 7
ifne 9
iconst_1
ireturn
StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder java.nio.file.Path java.lang.String java.lang.String java.util.List java.lang.ProcessBuilder java.lang.Process int
StackMap stack:
9: iconst_0
ireturn
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 10 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 10 1 currDir Ljava/nio/file/Path;
0 10 2 binFile Ljava/lang/String;
0 10 3 relativeDbgFileName Ljava/lang/String;
4 10 4 addDbgLinkCmdLine Ljava/util/List<Ljava/lang/String;>;
5 10 5 builder Ljava/lang/ProcessBuilder;
7 10 6 stripProc Ljava/lang/Process;
8 10 7 retval I
Exceptions:
throws java.lang.InterruptedException, java.io.IOException
MethodParameters:
Name Flags
currDir
binFile
relativeDbgFileName
private byte[] createDebugSymbolsFile(java.nio.file.Path, java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/lang/String;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 4
start local 4 1: aload 2
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 5
start local 5 2: aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.cmdBuilder:Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder;
aload 0
getfield jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.strip:Ljava/lang/String;
iconst_3
anewarray java.lang.String
dup
iconst_0
3: ldc "--only-keep-debug"
aastore
dup
iconst_1
4: aload 4
aastore
dup
iconst_2
5: aload 5
aastore
6: invokeinterface jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder.build:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
astore 6
start local 6 7: aload 0
aload 6
invokevirtual jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder.createProcessBuilder:(Ljava/util/List;)Ljava/lang/ProcessBuilder;
astore 7
start local 7 8: aload 7
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 8
start local 8 9: aload 8
invokevirtual java.lang.Process.waitFor:()I
istore 9
start local 9 10: iload 9
ifeq 14
11: getstatic jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin.DEBUG:Z
ifeq 13
12: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "DEBUG: Creating debuginfo file failed."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
13: StackMap locals: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder java.nio.file.Path java.nio.file.Path java.lang.String java.lang.String java.lang.String java.util.List java.lang.ProcessBuilder java.lang.Process int
StackMap stack:
aconst_null
areturn
14: StackMap locals:
StackMap stack:
aload 2
invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
areturn
end local 9 end local 8 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 15 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 15 1 binPath Ljava/nio/file/Path;
0 15 2 debugPath Ljava/nio/file/Path;
0 15 3 dbgFileName Ljava/lang/String;
1 15 4 filePath Ljava/lang/String;
2 15 5 dbgPath Ljava/lang/String;
7 15 6 createLinkCmdLine Ljava/util/List<Ljava/lang/String;>;
8 15 7 builder Ljava/lang/ProcessBuilder;
9 15 8 stripProc Ljava/lang/Process;
10 15 9 retval I
Exceptions:
throws java.lang.InterruptedException, java.io.IOException
MethodParameters:
Name Flags
binPath
debugPath
dbgFileName
private java.lang.ProcessBuilder createProcessBuilder(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)Ljava/lang/ProcessBuilder;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.ProcessBuilder
dup
aload 1
invokespecial java.lang.ProcessBuilder.<init>:(Ljava/util/List;)V
astore 2
start local 2 1: aload 2
getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
invokevirtual java.lang.ProcessBuilder.redirectError:(Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
pop
2: aload 2
getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
invokevirtual java.lang.ProcessBuilder.redirectOutput:(Ljava/lang/ProcessBuilder$Redirect;)Ljava/lang/ProcessBuilder;
pop
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 4 1 cmd Ljava/util/List<Ljava/lang/String;>;
1 4 2 builder Ljava/lang/ProcessBuilder;
Signature: (Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/ProcessBuilder;
MethodParameters:
Name Flags
cmd
private void deleteDirRecursivelyIgnoreResult(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
new jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder$1
dup
aload 0
invokespecial jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder$1.<init>:(Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;)V
invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
pop
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/plugins/StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder;
0 4 1 tempDir Ljava/nio/file/Path;
Exception table:
from to target type
0 1 2 Class java.io.IOException
MethodParameters:
Name Flags
tempDir
}
SourceFile: "StripNativeDebugSymbolsPlugin.java"
NestHost: jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin
InnerClasses:
public abstract Redirect = java.lang.ProcessBuilder$Redirect of java.lang.ProcessBuilder
public abstract ObjCopyCmdBuilder = jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$ObjCopyCmdBuilder of jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin
private StrippedDebugInfoBinary = jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinary of jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin
private StrippedDebugInfoBinaryBuilder = jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder of jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin
jdk.tools.jlink.internal.plugins.StripNativeDebugSymbolsPlugin$StrippedDebugInfoBinaryBuilder$1
public final Type = jdk.tools.jlink.plugin.ResourcePoolEntry$Type of jdk.tools.jlink.plugin.ResourcePoolEntry