When SIGSEGV occurred on a tracee process, a tracee process freezes.
This commit is contained in:
@ -418,13 +418,14 @@ static void page_fault_handler(void *fault_addr, uint64_t reason, void *regs)
|
|||||||
info._sifields._sigfault.si_addr = fault_addr;
|
info._sifields._sigfault.si_addr = fault_addr;
|
||||||
set_signal(SIGSEGV, regs, &info);
|
set_signal(SIGSEGV, regs, &info);
|
||||||
}
|
}
|
||||||
|
preempt_enable();
|
||||||
check_signal(0, regs, 0);
|
check_signal(0, regs, 0);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
out:
|
|
||||||
preempt_enable();
|
preempt_enable();
|
||||||
|
out:
|
||||||
dkprintf("[%d]page_fault_handler(%p,%lx,%p): (%d)\n",
|
dkprintf("[%d]page_fault_handler(%p,%lx,%p): (%d)\n",
|
||||||
ihk_mc_get_processor_id(), fault_addr, reason,
|
ihk_mc_get_processor_id(), fault_addr, reason,
|
||||||
regs, error);
|
regs, error);
|
||||||
|
|||||||
Reference in New Issue
Block a user