< prev index next >

src/os_cpu/linux_x86/vm/os_linux_x86.cpp

Print this page
rev 8961 : [mq]: diff-shenandoah.patch

*** 433,442 **** --- 433,458 ---- os::block_on_serialize_page_trap(); return true; } } + if ((sig == SIGSEGV) && UseShenandoahGC + && (ShenandoahVerifyWritesToFromSpace || ShenandoahVerifyReadsToFromSpace)) { + if (Universe::heap()->is_in(info->si_addr)) { + tty->print("OK, we got the SIGSEGV,on address %p now what?\n", (address) info->si_addr); + ucontext_t* uc = (ucontext_t*) ucVoid; + address pc = (address) os::Linux::ucontext_get_pc(uc); + os::print_context(tty, ucVoid); + Universe::heap()->print(); + if (ShenandoahVerifyReadsToFromSpace) { + assert(false, "Illegal read to From Space"); + } else { + assert(false, "Illegal write to From Space"); + } + } + } + #ifndef AMD64 // Execution protection violation // // This should be kept as the last step in the triage. We don't // have a dedicated trap number for a no-execute fault, so be
< prev index next >