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;