Author: alfredo
Date: Thu Oct  8 22:00:31 2020
New Revision: 366548
URL: https://svnweb.freebsd.org/changeset/base/366548

Log:
  [PowerPC] add machdep.uprintf_signal sysctl
  
  Add support for sysctl 'machdep.uprintf_signal' that prints debugging
  information on trap signal.
  
  Reviewed by:  jhibbits, luporl, bdragon
  Sponsored by: Eldorado Research Institute (eldorado.org.br)
  Differential Revision:        https://reviews.freebsd.org/D26004

Modified:
  head/sys/powerpc/powerpc/trap.c

Modified: head/sys/powerpc/powerpc/trap.c
==============================================================================
--- head/sys/powerpc/powerpc/trap.c     Thu Oct  8 20:56:11 2020        
(r366547)
+++ head/sys/powerpc/powerpc/trap.c     Thu Oct  8 22:00:31 2020        
(r366548)
@@ -153,6 +153,11 @@ static struct powerpc_exception powerpc_exceptions[] =
        { EXC_LAST,     NULL }
 };
 
+static int uprintf_signal;
+SYSCTL_INT(_machdep, OID_AUTO, uprintf_signal, CTLFLAG_RWTUN,
+    &uprintf_signal, 0,
+    "Print debugging information on trap signal to ctty");
+
 #define ESR_BITMASK                                                    \
     "\20"                                                              \
     "\040b0\037b1\036b2\035b3\034PIL\033PRR\032PTR\031FP"              \
@@ -489,6 +494,14 @@ trap(struct trapframe *frame)
                ksi.ksi_code = (int) ucode; /* XXX, not POSIX */
                ksi.ksi_addr = (void *)addr;
                ksi.ksi_trapno = type;
+               if (uprintf_signal) {
+                       uprintf("pid %d comm %s: signal %d code %d type %d "
+                               "addr 0x%lx r1 0x%lx srr0 0x%lx srr1 0x%lx\n",
+                               p->p_pid, p->p_comm, sig, ucode, type,
+                               (u_long)addr, (u_long)frame->fixreg[1],
+                               (u_long)frame->srr0, (u_long)frame->srr1);
+               }
+
                trapsignal(td, &ksi);
        }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to