* Copyright (c) 1988 The Regents of the University of California.
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
"@(#) Copyright (c) 1988 The Regents of the University of California.\n\
static char sccsid
[] = "@(#)ktrace.c 1.3 (Berkeley) %G%";
"usage: ktrace [-aci] [-f tracefile] [-t facilitystring] [-p pid] [-g pgid]\n\
facilities: c = syscalls, n = namei, g = generic-i/o, a = everything\n"
char *tracefile
= DEF_TRACEFILE
;
while ((ch
= getopt(argc
,argv
,"acp:g:if:t:")) != EOF
)
"ktrace: unknown facility in %s\n",
ops
|= KTROP_INHERITFLAG
;
fprintf(stderr
,"usage: \n",*argv
);
argv
+= optind
, argc
-= optind
;
if (clear
) { /* untrace something */
ops
|= pid
? KTROP_CLEAR
: KTROP_CLEARFILE
;
if (ktrace(tracefile
, ops
, facs
, pid
) < 0) {
if (pid
== 0 && !*argv
) { /* nothing to trace */
close(open(tracefile
, O_WRONLY
| O_CREAT
, 0666));
close(open(tracefile
, O_WRONLY
| O_TRUNC
));
if (ktrace(tracefile
, ops
, facs
, pid
) < 0) {
if (ktrace(tracefile
, ops
, facs
, pid
) < 0) {
execvp(argv
[0], &argv
[0]);
perror("ktrace: exec failed");