Report TRAP_BRKPT for breakpoint traps on sparc64.
Reviewed by: marius MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D15190
This commit is contained in:
parent
806b3bbe97
commit
485415ec47
@ -257,7 +257,7 @@ trap(struct trapframe *tf)
|
||||
struct thread *td;
|
||||
struct proc *p;
|
||||
int error;
|
||||
int sig;
|
||||
int sig, ucode;
|
||||
register_t addr;
|
||||
ksiginfo_t ksi;
|
||||
|
||||
@ -277,6 +277,7 @@ trap(struct trapframe *tf)
|
||||
td->td_pticks = 0;
|
||||
td->td_frame = tf;
|
||||
addr = tf->tf_tpc;
|
||||
ucode = (int)tf->tf_type; /* XXX not POSIX */
|
||||
if (td->td_cowgen != p->p_cowgen)
|
||||
thread_cow_update(td);
|
||||
|
||||
@ -300,6 +301,10 @@ trap(struct trapframe *tf)
|
||||
case T_CORRECTED_ECC_ERROR:
|
||||
sig = trap_cecc();
|
||||
break;
|
||||
case T_BREAKPOINT:
|
||||
sig = SIGTRAP;
|
||||
ucode = TRAP_BRKPT;
|
||||
break;
|
||||
default:
|
||||
if (tf->tf_type > T_MAX)
|
||||
panic("trap: bad trap type %#lx (user)",
|
||||
@ -322,7 +327,7 @@ trap(struct trapframe *tf)
|
||||
kdb_enter(KDB_WHY_TRAPSIG, "trapsig");
|
||||
ksiginfo_init_trap(&ksi);
|
||||
ksi.ksi_signo = sig;
|
||||
ksi.ksi_code = (int)tf->tf_type; /* XXX not POSIX */
|
||||
ksi.ksi_code = ucode;
|
||||
ksi.ksi_addr = (void *)addr;
|
||||
ksi.ksi_trapno = (int)tf->tf_type;
|
||||
trapsignal(td, &ksi);
|
||||
|
Loading…
Reference in New Issue
Block a user