< prev index next >

src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp

Print this page
*** 247,15 ***
              next_pc = UnsafeMemoryAccess::page_error_continue_pc(pc);
            }
            stub = SharedRuntime::handle_unsafe_access(thread, next_pc);
          }
        } else if (sig == SIGILL && nativeInstruction_at(pc)->is_stop()) {
!         // Pull a pointer to the error message out of the instruction
!         // stream.
-         const uint64_t *detail_msg_ptr
-           = (uint64_t*)(pc + NativeInstruction::instruction_size);
-         const char *detail_msg = (const char *)*detail_msg_ptr;
          const char *msg = "stop";
          if (TraceTraps) {
            tty->print_cr("trap: %s: (SIGILL)", msg);
          }
  
--- 247,12 ---
              next_pc = UnsafeMemoryAccess::page_error_continue_pc(pc);
            }
            stub = SharedRuntime::handle_unsafe_access(thread, next_pc);
          }
        } else if (sig == SIGILL && nativeInstruction_at(pc)->is_stop()) {
!         // A pointer to the message will have been placed in r0
!         const char *detail_msg = (const char *)(uc->uc_mcontext.regs[0]);
          const char *msg = "stop";
          if (TraceTraps) {
            tty->print_cr("trap: %s: (SIGILL)", msg);
          }
  
< prev index next >