Index: sys/arm64/arm64/trap.c =================================================================== --- sys/arm64/arm64/trap.c +++ sys/arm64/arm64/trap.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #ifdef KDB #include @@ -74,6 +75,12 @@ #include #endif +static int uprintf_signal; +SYSCTL_INT(_machdep, OID_AUTO, uprintf_signal, CTLFLAG_RWTUN, + &uprintf_signal, 0, + "Print debugging information on trap signal to ctty"); + + /* Called from exception.S */ void do_el1h_sync(struct thread *, struct trapframe *); void do_el0_sync(struct thread *, struct trapframe *); @@ -120,6 +127,8 @@ static __inline void call_trapsignal(struct thread *td, int sig, int code, void *addr, int trapno) { + struct proc *p; + struct trapframe *frame; ksiginfo_t ksi; ksiginfo_init_trap(&ksi); @@ -127,6 +136,15 @@ ksi.ksi_code = code; ksi.ksi_addr = addr; ksi.ksi_trapno = trapno; + + if (uprintf_signal) { + p = td->td_proc; + frame = td->td_frame; + + uprintf("pid %d comm %s: signal %d code %d type %d addr %p\n", + p->p_pid, p->p_comm, sig, code, trapno, addr); + print_registers(frame); + } trapsignal(td, &ksi); }