--- old/src/os_cpu/linux_x86/vm/os_linux_x86.cpp 2015-10-14 13:53:44.412610202 +0200 +++ new/src/os_cpu/linux_x86/vm/os_linux_x86.cpp 2015-10-14 13:53:44.310612669 +0200 @@ -435,6 +435,21 @@ } } + if ((sig == SIGSEGV) && UseShenandoahGC + && (ShenandoahVerifyWritesToFromSpace || ShenandoahVerifyReadsToFromSpace)) { + if (Universe::heap()->is_in(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 //