Module Name: src
Committed By: kamil
Date: Fri Jan 6 22:42:58 UTC 2017
Modified Files:
src/sys/kern: kern_exec.c
src/sys/sys: siginfo.h
Log Message:
Introduce new SIGTRAP code: TRAP_EXEC
On exec() events under a debugger generate the SIGTRAP signal with
TRAP_EXEC property. This allows tracer to distinguish exec() events easily.
Sponsored by <The NetBSD Foundation>
To generate a diff of this commit:
cvs rdiff -u -r1.438 -r1.439 src/sys/kern/kern_exec.c
cvs rdiff -u -r1.26 -r1.27 src/sys/sys/siginfo.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/kern_exec.c
diff -u src/sys/kern/kern_exec.c:1.438 src/sys/kern/kern_exec.c:1.439
--- src/sys/kern/kern_exec.c:1.438 Thu Nov 3 22:08:30 2016
+++ src/sys/kern/kern_exec.c Fri Jan 6 22:42:58 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_exec.c,v 1.438 2016/11/03 22:08:30 kamil Exp $ */
+/* $NetBSD: kern_exec.c,v 1.439 2017/01/06 22:42:58 kamil Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.438 2016/11/03 22:08:30 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.439 2017/01/06 22:42:58 kamil Exp $");
#include "opt_exec.h"
#include "opt_execfmt.h"
@@ -1318,6 +1318,7 @@ execve_runproc(struct lwp *l, struct exe
KSI_INIT_EMPTY(&ksi);
ksi.ksi_signo = SIGTRAP;
+ ksi.ksi_code = TRAP_EXEC;
ksi.ksi_lid = l->l_lid;
kpsignal(p, &ksi, NULL);
}
Index: src/sys/sys/siginfo.h
diff -u src/sys/sys/siginfo.h:1.26 src/sys/sys/siginfo.h:1.27
--- src/sys/sys/siginfo.h:1.26 Tue Dec 27 02:20:46 2016
+++ src/sys/sys/siginfo.h Fri Jan 6 22:42:58 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: siginfo.h,v 1.26 2016/12/27 02:20:46 kamil Exp $ */
+/* $NetBSD: siginfo.h,v 1.27 2017/01/06 22:42:58 kamil Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -210,6 +210,7 @@ typedef union siginfo {
/* SIGTRAP */
#define TRAP_BRKPT 1 /* Process breakpoint */
#define TRAP_TRACE 2 /* Process trace trap */
+#define TRAP_EXEC 3 /* Process exec trap */
/* SIGCHLD */
#define CLD_EXITED 1 /* Child has exited */