__ZN15MetaspaceShared16preload_and_dumpEP6Thread: 000000000043a11e pushq %rbp 000000000043a11f movq %rsp, %rbp 000000000043a122 pushq %r15 000000000043a124 pushq %r14 000000000043a126 pushq %r13 000000000043a128 pushq %r12 000000000043a12a pushq %rbx 000000000043a12b subq $0x558, %rsp 000000000043a132 movq %rdi, %r15 000000000043a135 leaq 0x1b75ef(%rip), %rsi 000000000043a13c leaq -0x50(%rbp), %rdi 000000000043a140 xorl %edx, %edx 000000000043a142 callq 0x557c86 000000000043a147 leaq 0x2b6c0a(%rip), %rax 000000000043a14e movslq (%rax), %rdi 000000000043a151 callq 0x5b2cf2 000000000043a156 leaq 0x2d8e03(%rip), %r13 000000000043a15d movq (%r13), %rdi 000000000043a161 movq 0x2d8200(%rip), %rax 000000000043a168 movq (%rax), %rcx 000000000043a16b movq 0x8(%rax), %rdx 000000000043a16f leaq 0x1b75c8(%rip), %rsi 000000000043a176 xorl %eax, %eax 000000000043a178 callq 0x47fda4 if (SharedClassListFile == NULL) { 000000000043a17d leaq 0x2cf7cc(%rip), %rax 000000000043a184 movq (%rax), %r14 000000000043a187 testq %r14, %r14 // r14 == class_list_path := SharedClassListFile; 000000000043a18a jne 0x43a219 char class_list_path_str[JVM_MAXPATHLEN]; os::jvm_path(class_list_path_str, sizeof(class_list_path_str)); 000000000043a190 leaq -0x460(%rbp), %r14 // r14 = class_list_path := class_list_path_str 000000000043a197 movl $0x401, %esi // esi=sizeof(class_list_path_str) 000000000043a19c movq %r14, %rdi // rdi=&class_list_path_str 000000000043a19f callq 0x4783e0 for (int i = 0; i < 3; i++) { char *end = strrchr(class_list_path_str, *os::file_separator()); if (end != NULL) *end = '\0'; } 000000000043a1a4 movl $0x3, %ebx repeat_loop: 000000000043a1a9 movl $0x2f, %esi // esi=parameter2=*os::file_separator()=0x2f='/' 000000000043a1ae movq %r14, %rdi 000000000043a1b1 callq 0x5b2e96 // 000000000043a1b6 testq %rax, %rax 000000000043a1b9 je 0x43a1be 000000000043a1bb movb $0x0, (%rax) 000000000043a1be decl %ebx 000000000043a1c0 jne 0x43a1a9 int class_list_path_len = (int)strlen(class_list_path_str); if (class_list_path_len >= 3) { 000000000043a1c2 movq %r14, %rdi 000000000043a1c5 callq 0x5b2e72 // 000000000043a1ca cmpl $0x3, %eax 000000000043a1cd jl 0x43a219 if (strcmp(class_list_path_str + class_list_path_len - 3, "lib") != 0) { 000000000043a1cf leaq -0x460(%rbp), %r14 000000000043a1d6 cltq 000000000043a1d8 leaq -0x3(%rax,%r14), %rdi 000000000043a1dd leaq 0x180958(%rip), %rsi 000000000043a1e4 callq 0x5b2e54 000000000043a1e9 testl %eax, %eax // strcmp(...) == 0 000000000043a1eb je 0x43a219 strcat(class_list_path_str, os::file_separator()); 000000000043a1ed leaq -0x460(%rbp), %r14 000000000043a1f4 movq %r14, %rdi // rdi=&class_list_path_str 000000000043a1f7 callq 0x5b2e72 // -> %RAX 000000000043a1fc movw $0x2f, -0x460(%rbp,%rax) // (WORD) 0x002f = {'/', '\0'} strcat(class_list_path_str, "lib"); 000000000043a206 movq %r14, %rdi // rdi=&class_list_path_str 000000000043a209 callq 0x5b2e72 // -> %RAX 000000000043a20e movl $0x62696c, -0x460(%rbp,%rax) // $0x62696c = vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WHERE ARE THESE TWO LINES??? strcat(class_list_path_str, os::file_separator()); strcat(class_list_path_str, "classlist"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } int class_count = 0; GrowableArray* class_promote_order = new GrowableArray(); 000000000043a219 xorl %ebx, %ebx 000000000043a21b movl $0x20, %edi 000000000043a220 xorl %esi, %esi 000000000043a222 callq 0x4cbe2c 000000000043a227 movq %rax, %r12 000000000043a22a testq %r12, %r12 000000000043a22d je 0x43a23a 000000000043a22f movq %r12, %rdi 000000000043a232 callq 0x43aba4 000000000043a237 movq %r12, %rbx // rbx = class_promote_order // sun.io.Converters static const char obj_array_sig[] = "[[Ljava/lang/Object;"; SymbolTable::new_permanent_symbol(obj_array_sig, THREAD); 000000000043a23a leaq 0x1de99f(%rip), %rdi 000000000043a241 movq %r15, %rsi 000000000043a244 callq 0x5218cc // java.util.HashMap static const char map_entry_array_sig[] = "[Ljava/util/Map$Entry;"; SymbolTable::new_permanent_symbol(map_entry_array_sig, THREAD); 000000000043a249 leaq 0x1de9b0(%rip), %rdi 000000000043a250 movq %r15, %rsi 000000000043a253 callq 0x5218cc tty->print_cr("Loading classes to share ..."); 000000000043a258 movq (%r13), %rdi 000000000043a25c leaq 0x1b7508(%rip), %rsi 000000000043a263 xorl %eax, %eax 000000000043a265 callq 0x47fda4 _has_error_classes = false; 000000000043a26a movb $0x0, 0x2d8101(%rip) class_count += preload_and_dump(class_list_path, class_promote_order, THREAD) 000000000043a271 movq %r14, %rdi // rdi=&class_list_path_str 000000000043a274 movq %rbx, %rsi // rsi<=rbx=class_promote_order 000000000043a277 movq %r15, %rdx 000000000043a27a callq 0x43a35c 000000000043a27f movl %eax, %r12d 000000000043a282 leaq 0x2cf6d7(%rip), %rax 000000000043a289 movq (%rax), %rdi 000000000043a28c testq %rdi, %rdi 000000000043a28f movq %rbx, %r14 000000000043a292 je 0x43a2a2 000000000043a294 movq %r14, %rsi 000000000043a297 movq %r15, %rdx 000000000043a29a callq 0x43a35c 000000000043a29f addl %eax, %r12d 000000000043a2a2 movq (%r13), %rdi 000000000043a2a6 leaq 0x1b74db(%rip), %rsi 000000000043a2ad xorl %eax, %eax 000000000043a2af callq 0x47fda4 000000000043a2b4 leaq 0x2cf657(%rip), %rax 000000000043a2bb cmpb $0x0, (%rax) 000000000043a2be je 0x43a2d5 000000000043a2c0 movq (%r13), %rdi 000000000043a2c4 leaq 0x1b74dd(%rip), %rsi 000000000043a2cb xorl %eax, %eax 000000000043a2cd movl %r12d, %edx 000000000043a2d0 callq 0x47fda4 000000000043a2d5 movq (%r13), %rdi 000000000043a2d9 leaq 0x1b74ec(%rip), %rsi 000000000043a2e0 xorl %eax, %eax 000000000043a2e2 callq 0x47fda4 000000000043a2e7 movq %r15, %rdi 000000000043a2ea callq 0x43a028 000000000043a2ef movq 0x8(%r15), %rbx 000000000043a2f3 testq %rbx, %rbx 000000000043a2f6 je 0x43a31e 000000000043a2f8 movq %r15, %rdi 000000000043a2fb callq 0x23216a 000000000043a300 movq %rbx, %rdi 000000000043a303 callq 0x471414 000000000043a308 leaq 0x1b7046(%rip), %rdi 000000000043a30f movl $0x2f7, %esi 000000000043a314 callq 0x1da598 000000000043a319 callq 0x478640 000000000043a31e movq (%r13), %rdi 000000000043a322 leaq 0x1b74c5(%rip), %rsi 000000000043a329 xorl %eax, %eax 000000000043a32b callq 0x47fda4 000000000043a330 leaq 0x2cc829(%rip), %rax 000000000043a337 movq (%rax), %rsi 000000000043a33a leaq -0x580(%rbp), %rbx 000000000043a341 movq %rbx, %rdi 000000000043a344 movq %r14, %rdx 000000000043a347 callq 0x43ac84 000000000043a34c movq %rbx, %rdi 000000000043a34f callq 0x5a0cd8 000000000043a354 xorl %edi, %edi 000000000043a356 callq 0x5b2ad6 000000000043a35b nop