Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Jul 2019 15:51:09 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r350043 - in head: share/man/man5 sys/kern
Message-ID:  <201907161551.x6GFp9T2011645@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vangyzen
Date: Tue Jul 16 15:51:09 2019
New Revision: 350043
URL: https://svnweb.freebsd.org/changeset/base/350043

Log:
  Adds signal number format to kern.corefile
  
  Add format capability to core file names to include signal
  that generated the core. This can help various validation workflows
  where all cores should not be considered equally (SIGQUIT is often
  intentional and not an error unlike SIGSEGV or SIGBUS)
  
  Submitted by:	David Leimbach (leimy2k@gmail.com)
  Reviewed by:	markj
  MFC after:	1 week
  Relnotes:	sysctl kern.corefile can now include the signal number
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D20970

Modified:
  head/share/man/man5/core.5
  head/sys/kern/kern_sig.c

Modified: head/share/man/man5/core.5
==============================================================================
--- head/share/man/man5/core.5	Tue Jul 16 15:49:43 2019	(r350042)
+++ head/share/man/man5/core.5	Tue Jul 16 15:51:09 2019	(r350043)
@@ -82,6 +82,8 @@ generated by a particular process.
 process name.
 .It Em \&%P
 processes PID.
+.It Em \&%S
+signal during core.
 .It Em \&%U
 process UID.
 .El

Modified: head/sys/kern/kern_sig.c
==============================================================================
--- head/sys/kern/kern_sig.c	Tue Jul 16 15:49:43 2019	(r350042)
+++ head/sys/kern/kern_sig.c	Tue Jul 16 15:51:09 2019	(r350043)
@@ -3433,7 +3433,7 @@ corefile_open_last(struct thread *td, char *name, int 
  */
 static int
 corefile_open(const char *comm, uid_t uid, pid_t pid, struct thread *td,
-    int compress, struct vnode **vpp, char **namep)
+    int compress, int signum, struct vnode **vpp, char **namep)
 {
 	struct sbuf sb;
 	struct nameidata nd;
@@ -3482,6 +3482,9 @@ corefile_open(const char *comm, uid_t uid, pid_t pid, 
 			case 'P':	/* process id */
 				sbuf_printf(&sb, "%u", pid);
 				break;
+			case 'S':	/* signal number */
+				sbuf_printf(&sb, "%i", signum);
+				break;
 			case 'U':	/* user id */
 				sbuf_printf(&sb, "%u", uid);
 				break;
@@ -3599,7 +3602,7 @@ coredump(struct thread *td)
 	PROC_UNLOCK(p);
 
 	error = corefile_open(p->p_comm, cred->cr_uid, p->p_pid, td,
-	    compress_user_cores, &vp, &name);
+	    compress_user_cores, p->p_sig, &vp, &name);
 	if (error != 0)
 		return (error);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201907161551.x6GFp9T2011645>