diff --git a/arch/risc-v/src/common/riscv_exception.c b/arch/risc-v/src/common/riscv_exception.c index 6f5c81b2fd8..3d45d264996 100644 --- a/arch/risc-v/src/common/riscv_exception.c +++ b/arch/risc-v/src/common/riscv_exception.c @@ -119,6 +119,10 @@ static void riscv_fault_handler(uintreg_t cause, void *regs) _alert("Segmentation fault in %s (PID %d: %s)\n", get_task_name(ptcb), tcb->pid, get_task_name(tcb)); +#ifdef CONFIG_SCHED_BACKTRACE + sched_dumpstack(tcb->pid); +#endif + tcb->flags |= TCB_FLAG_FORCED_CANCEL; /* Return to _exit function in privileged mode with argument SIGSEGV */