< prev index next >

src/os_cpu/linux_s390/vm/os_linux_s390.cpp

Print this page
rev 12696 : 8176872: [s390] wrong pc shown in error logs
Reviewed-by:

*** 503,512 **** --- 503,520 ---- sigset_t newset; sigemptyset(&newset); sigaddset(&newset, sig); sigprocmask(SIG_UNBLOCK, &newset, NULL); + // Hand down correct pc for SIGILL, SIGFPE. pc from context + // usually points to the instruction after the failing instruction. + // Note: this should be combined with the trap_pc handling above, + // because it handles the same issue. + if (sig == SIGILL || sig == SIGFPE) { + pc = (address)info->si_addr; + } + VMError::report_and_die(t, sig, pc, info, ucVoid); ShouldNotReachHere(); return false; }
< prev index next >