svn commit: r337061 - stable/11/sys/sparc64/sparc64

John Baldwin jhb at FreeBSD.org
Wed Aug 1 20:38:02 UTC 2018


Author: jhb
Date: Wed Aug  1 20:38:01 2018
New Revision: 337061
URL: https://svnweb.freebsd.org/changeset/base/337061

Log:
  MFC 333416: Report TRAP_BRKPT for breakpoint traps on sparc64.

Modified:
  stable/11/sys/sparc64/sparc64/trap.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/sparc64/sparc64/trap.c
==============================================================================
--- stable/11/sys/sparc64/sparc64/trap.c	Wed Aug  1 20:08:20 2018	(r337060)
+++ stable/11/sys/sparc64/sparc64/trap.c	Wed Aug  1 20:38:01 2018	(r337061)
@@ -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);


More information about the svn-src-all mailing list