Module Name:    src
Committed By:   alnsn
Date:           Wed Jun  1 21:28:33 UTC 2011

Modified Files:
        src/usr.bin/kdump: kdump.c
        src/usr.bin/ktrace: ktrace.1 subr.c

Log Message:
kern/42030 - tracking of file descriptors by ktrace/kdump


To generate a diff of this commit:
cvs rdiff -u -r1.111 -r1.112 src/usr.bin/kdump/kdump.c
cvs rdiff -u -r1.40 -r1.41 src/usr.bin/ktrace/ktrace.1
cvs rdiff -u -r1.17 -r1.18 src/usr.bin/ktrace/subr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/kdump/kdump.c
diff -u src/usr.bin/kdump/kdump.c:1.111 src/usr.bin/kdump/kdump.c:1.112
--- src/usr.bin/kdump/kdump.c:1.111	Wed Apr 27 00:00:47 2011
+++ src/usr.bin/kdump/kdump.c	Wed Jun  1 21:28:32 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: kdump.c,v 1.111 2011/04/27 00:00:47 joerg Exp $	*/
+/*	$NetBSD: kdump.c,v 1.112 2011/06/01 21:28:32 alnsn Exp $	*/
 
 /*-
  * Copyright (c) 1988, 1993
@@ -39,12 +39,14 @@
 #if 0
 static char sccsid[] = "@(#)kdump.c	8.4 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: kdump.c,v 1.111 2011/04/27 00:00:47 joerg Exp $");
+__RCSID("$NetBSD: kdump.c,v 1.112 2011/06/01 21:28:32 alnsn Exp $");
 #endif
 #endif /* not lint */
 
 #include <sys/param.h>
+#include <sys/proc.h> /* XXX #include <sys/file.h> fails without this header */
 #define _KERNEL
+#include <sys/file.h>
 #include <sys/errno.h>
 #undef _KERNEL
 #include <sys/time.h>
@@ -115,6 +117,7 @@
 static void	ktrcsw(struct ktr_csw *);
 static void	ktruser(struct ktr_user *, int);
 static void	ktrmib(int *, int);
+static void	ktrexecfd(struct ktr_execfd *);
 static void	usage(void) __dead;
 static void	eprint(int);
 static void	rprint(register_t);
@@ -294,6 +297,9 @@
 		case KTR_EXEC_ENV:
 			visdump_buf(m, ktrlen, col);
 			break;
+		case KTR_EXEC_FD:
+			ktrexecfd(m);
+			break;
 		case KTR_MIB:
 			ktrmib(m, ktrlen);
 			break;
@@ -363,6 +369,9 @@
 	case KTR_EXEC_ARG:
 		type = "ARG";
 		break;
+	case KTR_EXEC_FD:
+		type = "FD";
+		break;
 	case KTR_SAUPCALL:
 		type = "SAU";
 		break;
@@ -632,6 +641,16 @@
 }
 
 static void
+ktrexecfd(struct ktr_execfd *ktr)
+{
+	static const char *dnames[] = { DTYPE_NAMES };
+	if (ktr->ktr_dtype < __arraycount(dnames))
+		printf("%s %d\n", dnames[ktr->ktr_dtype], ktr->ktr_fd);
+	else
+		printf("UNKNOWN(%u) %d\n", ktr->ktr_dtype, ktr->ktr_fd);
+}
+
+static void
 rprint(register_t ret)
 {
 

Index: src/usr.bin/ktrace/ktrace.1
diff -u src/usr.bin/ktrace/ktrace.1:1.40 src/usr.bin/ktrace/ktrace.1:1.41
--- src/usr.bin/ktrace/ktrace.1:1.40	Wed Apr 27 00:00:47 2011
+++ src/usr.bin/ktrace/ktrace.1	Wed Jun  1 21:28:33 2011
@@ -1,4 +1,4 @@
-.\"	$NetBSD: ktrace.1,v 1.40 2011/04/27 00:00:47 joerg Exp $
+.\"	$NetBSD: ktrace.1,v 1.41 2011/06/01 21:28:33 alnsn Exp $
 .\"
 .\" Copyright (c) 1990, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -181,6 +181,8 @@
 trace system calls
 .It Cm e
 trace emulation changes
+.It Cm f
+trace open file descriptors after exec
 .It Cm i
 trace
 .Tn I/O

Index: src/usr.bin/ktrace/subr.c
diff -u src/usr.bin/ktrace/subr.c:1.17 src/usr.bin/ktrace/subr.c:1.18
--- src/usr.bin/ktrace/subr.c:1.17	Wed Apr 27 00:00:47 2011
+++ src/usr.bin/ktrace/subr.c	Wed Jun  1 21:28:33 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr.c,v 1.17 2011/04/27 00:00:47 joerg Exp $	*/
+/*	$NetBSD: subr.c,v 1.18 2011/06/01 21:28:33 alnsn Exp $	*/
 
 /*-
  * Copyright (c) 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)subr.c	8.2 (Berkeley) 4/28/95";
 #else
-__RCSID("$NetBSD: subr.c,v 1.17 2011/04/27 00:00:47 joerg Exp $");
+__RCSID("$NetBSD: subr.c,v 1.18 2011/06/01 21:28:33 alnsn Exp $");
 #endif
 #endif /* not lint */
 
@@ -73,6 +73,9 @@
 		case 'e':
 			fac = KTRFAC_EMUL;
 			break;
+		case 'f':
+			fac = KTRFAC_EXEC_FD;
+			break;
 		case 'i':
 			fac = KTRFAC_GENIO;
 			break;

Reply via email to