4991 // This is the value of eip which points to where verify_oop will return. |
4991 // This is the value of eip which points to where verify_oop will return. |
4992 if (os::message_box(msg, "Execution stopped, print registers?")) { |
4992 if (os::message_box(msg, "Execution stopped, print registers?")) { |
4993 ttyLocker ttyl; |
4993 ttyLocker ttyl; |
4994 tty->print_cr("eip = 0x%08x", eip); |
4994 tty->print_cr("eip = 0x%08x", eip); |
4995 #ifndef PRODUCT |
4995 #ifndef PRODUCT |
4996 tty->cr(); |
4996 if ((WizardMode || Verbose) && PrintMiscellaneous) { |
4997 findpc(eip); |
4997 tty->cr(); |
4998 tty->cr(); |
4998 findpc(eip); |
|
4999 tty->cr(); |
|
5000 } |
4999 #endif |
5001 #endif |
5000 tty->print_cr("rax, = 0x%08x", rax); |
5002 tty->print_cr("rax = 0x%08x", rax); |
5001 tty->print_cr("rbx, = 0x%08x", rbx); |
5003 tty->print_cr("rbx = 0x%08x", rbx); |
5002 tty->print_cr("rcx = 0x%08x", rcx); |
5004 tty->print_cr("rcx = 0x%08x", rcx); |
5003 tty->print_cr("rdx = 0x%08x", rdx); |
5005 tty->print_cr("rdx = 0x%08x", rdx); |
5004 tty->print_cr("rdi = 0x%08x", rdi); |
5006 tty->print_cr("rdi = 0x%08x", rdi); |
5005 tty->print_cr("rsi = 0x%08x", rsi); |
5007 tty->print_cr("rsi = 0x%08x", rsi); |
5006 tty->print_cr("rbp, = 0x%08x", rbp); |
5008 tty->print_cr("rbp = 0x%08x", rbp); |
5007 tty->print_cr("rsp = 0x%08x", rsp); |
5009 tty->print_cr("rsp = 0x%08x", rsp); |
5008 BREAKPOINT; |
5010 BREAKPOINT; |
|
5011 assert(false, "start up GDB"); |
5009 } |
5012 } |
5010 } else { |
5013 } else { |
5011 ttyLocker ttyl; |
5014 ttyLocker ttyl; |
5012 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); |
5015 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); |
5013 assert(false, "DEBUG MESSAGE"); |
5016 assert(false, "DEBUG MESSAGE"); |
7675 |
7678 |
7676 // load indirectly to solve generation ordering problem |
7679 // load indirectly to solve generation ordering problem |
7677 movptr(tmp, ExternalAddress((address) delayed_value_addr)); |
7680 movptr(tmp, ExternalAddress((address) delayed_value_addr)); |
7678 |
7681 |
7679 #ifdef ASSERT |
7682 #ifdef ASSERT |
7680 Label L; |
7683 { Label L; |
7681 testptr(tmp, tmp); |
7684 testptr(tmp, tmp); |
7682 jccb(Assembler::notZero, L); |
7685 if (WizardMode) { |
7683 hlt(); |
7686 jcc(Assembler::notZero, L); |
7684 bind(L); |
7687 char* buf = new char[40]; |
|
7688 sprintf(buf, "DelayedValue="INTPTR_FORMAT, delayed_value_addr[1]); |
|
7689 stop(buf); |
|
7690 } else { |
|
7691 jccb(Assembler::notZero, L); |
|
7692 hlt(); |
|
7693 } |
|
7694 bind(L); |
|
7695 } |
7685 #endif |
7696 #endif |
7686 |
7697 |
7687 if (offset != 0) |
7698 if (offset != 0) |
7688 addptr(tmp, offset); |
7699 addptr(tmp, offset); |
7689 |
7700 |