# HG changeset patch # User chagedorn # Date 1568283146 -7200 # Node ID 689a80d20550d8ffd72e2f5bae2b5de53069e350 # Parent b2a4b22f8cf2e3cd4277ebeae315a46bbda94331 8230762: Change MacroAssembler::debug32/64 to use fatal instead of assert Summary: Always call fatal from debug32/64 to also crash in product build as a follow-up to JDK-8225653. Reviewed-by: roland, thartmann diff -r b2a4b22f8cf2 -r 689a80d20550 src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Fri Aug 23 14:22:29 2019 +0200 +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp Thu Sep 12 12:12:26 2019 +0200 @@ -2557,13 +2557,8 @@ tty->print_cr("r31 = 0x%016lx", regs[31]); BREAKPOINT; } - ThreadStateTransition::transition(thread, _thread_in_vm, saved_state); - } else { - ttyLocker ttyl; - ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", - msg); - assert(false, "DEBUG MESSAGE: %s", msg); } + fatal("DEBUG MESSAGE: %s", msg); } void MacroAssembler::push_call_clobbered_registers() { diff -r b2a4b22f8cf2 -r 689a80d20550 src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp --- a/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp Fri Aug 23 14:22:29 2019 +0200 +++ b/src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp Thu Sep 12 12:12:26 2019 +0200 @@ -598,6 +598,7 @@ BLOCK_COMMENT("call MacroAssembler::debug"); __ mov(rscratch1, CAST_FROM_FN_PTR(address, MacroAssembler::debug64)); __ blr(rscratch1); + __ hlt(0); return start; } diff -r b2a4b22f8cf2 -r 689a80d20550 src/hotspot/cpu/x86/macroAssembler_x86.cpp --- a/src/hotspot/cpu/x86/macroAssembler_x86.cpp Fri Aug 23 14:22:29 2019 +0200 +++ b/src/hotspot/cpu/x86/macroAssembler_x86.cpp Thu Sep 12 12:12:26 2019 +0200 @@ -427,13 +427,8 @@ print_state32(rdi, rsi, rbp, rsp, rbx, rdx, rcx, rax, eip); BREAKPOINT; } - } else { - ttyLocker ttyl; - ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); - } - // Don't assert holding the ttyLock - assert(false, "DEBUG MESSAGE: %s", msg); - ThreadStateTransition::transition(thread, _thread_in_vm, saved_state); + } + fatal("DEBUG MESSAGE: %s", msg); } void MacroAssembler::print_state32(int rdi, int rsi, int rbp, int rsp, int rbx, int rdx, int rcx, int rax, int eip) { @@ -892,15 +887,9 @@ if (os::message_box(msg, "Execution stopped, print registers?")) { print_state64(pc, regs); BREAKPOINT; - assert(false, "start up GDB"); } - ThreadStateTransition::transition(thread, _thread_in_vm, saved_state); - } else { - ttyLocker ttyl; - ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", - msg); - assert(false, "DEBUG MESSAGE: %s", msg); - } + } + fatal("DEBUG MESSAGE: %s", msg); } void MacroAssembler::print_state64(int64_t pc, int64_t regs[]) { diff -r b2a4b22f8cf2 -r 689a80d20550 src/hotspot/cpu/x86/stubGenerator_x86_32.cpp --- a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp Fri Aug 23 14:22:29 2019 +0200 +++ b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp Thu Sep 12 12:12:26 2019 +0200 @@ -710,8 +710,7 @@ __ pusha(); // push registers (eip = return address & msg are already pushed) BLOCK_COMMENT("call MacroAssembler::debug"); __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug32))); - __ popa(); - __ ret(3 * wordSize); // pop arguments + __ hlt(); return start; } diff -r b2a4b22f8cf2 -r 689a80d20550 src/hotspot/cpu/x86/stubGenerator_x86_64.cpp --- a/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Fri Aug 23 14:22:29 2019 +0200 +++ b/src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Thu Sep 12 12:12:26 2019 +0200 @@ -1129,10 +1129,7 @@ __ andptr(rsp, -16); // align stack as required by ABI BLOCK_COMMENT("call MacroAssembler::debug"); __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug64))); - __ mov(rsp, r12); // restore rsp - __ popa(); // pop registers (includes r12) - __ ret(4 * wordSize); // pop caller saved stuff - + __ hlt(); return start; }