Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
KTRACE(1)		FreeBSD	General	Commands Manual		     KTRACE(1)

     ktrace -- enable kernel process tracing

     ktrace [-aCcdi] [-f trfile] [-g pgrp | -p pid] [-t	cnistuw]
     ktrace [-adi] [-f trfile] [-t cnistuw] command

     The ktrace	utility	enables	kernel trace logging for the specified pro-
     cesses.  Kernel trace data	is logged to the file ktrace.out.  The kernel
     operations	that are traced	include	system calls, namei translations, sig-
     nal processing, and I/O.

     Once tracing is enabled on	a process, trace data will be logged until
     either the	process	exits or the trace point is cleared.  A	traced process
     can generate enormous amounts of log data quickly;	It is strongly sug-
     gested that users memorize	how to disable tracing before attempting to
     trace a process.  The following command is	sufficient to disable tracing
     on	all user-owned processes, and, if executed by root, all	processes:

	   $ ktrace -C

     The trace file is not human readable; use kdump(1)	to decode it.

     The utility may be	used only with a kernel	that has been built with the
     ``KTRACE''	option in the kernel configuration file.

     The options are:

     -a	     Append to the trace file instead of recreating it.

     -C	     Disable tracing on	all user-owned processes, and, if executed by
	     root, all processes in the	system.

     -c	     Clear the trace points associated with the	specified file or pro-

     -d	     Descendants; perform the operation	for all	current	children of
	     the designated processes.

     -f	trfile
	     Log trace records to trfile instead of ktrace.out.

     -g	pgid
	     Enable (disable) tracing on all processes in the process group
	     (only one -g flag is permitted).

     -i	     Inherit; pass the trace flags to all future children of the des-
	     ignated processes.

     -p	pid  Enable (disable) tracing on the indicated process id (only	one -p
	     flag is permitted).

     -t	cnistuw
	     The string	argument represents the	kernel trace points, one per
	     letter.  The following table equates the letters with the trace-

	     c	   trace system	calls
	     n	   trace namei translations
	     i	   trace I/O
	     s	   trace signal	processing
	     t	   trace various structures
	     u	   userland traces
	     w	   context switches
	     +	   trace the default set of trace points - c, n, i, s, t, u

	     Execute command with the specified	trace flags.

     The -p, -g, and command options are mutually exclusive.

     # trace all kernel	operations of process id 34
	   $ ktrace -p 34

     # trace all kernel	operations of processes	in process group 15 and	# pass
     the trace flags to	all current and	future children
	   $ ktrace -idg 15

     # disable all tracing of process 65
	   $ ktrace -cp	65

     # disable tracing signals on process 70 and all current children
	   $ ktrace -t s -cdp 70

     # enable tracing of I/O on	process	67
	   $ ktrace -ti	-p 67

     # run the command "w", tracing only system	calls
	   $ ktrace -tc	w

     # disable all tracing to the file "tracedata"
	   $ ktrace -c -f tracedata

     # disable tracing of all user-owned processes
	   $ ktrace -C


     The ktrace	command	appeared in 4.4BSD.

     Only works	if trfile is a regular file.

FreeBSD	11.1		       February	23, 2008		  FreeBSD 11.1


Want to link to this manual page? Use this URL:

home | help