xref: /freebsd/usr.bin/ktrace/ktrace.1 (revision a87651e2ff189cec4c26cb220354f1bc93794f31)
19b50d902SRodney W. Grimes.\" Copyright (c) 1990, 1993
29b50d902SRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
39b50d902SRodney W. Grimes.\"
49b50d902SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
59b50d902SRodney W. Grimes.\" modification, are permitted provided that the following conditions
69b50d902SRodney W. Grimes.\" are met:
79b50d902SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
89b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
99b50d902SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
109b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
119b50d902SRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
12fbbd9655SWarner Losh.\" 3. Neither the name of the University nor the names of its contributors
139b50d902SRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
149b50d902SRodney W. Grimes.\"    without specific prior written permission.
159b50d902SRodney W. Grimes.\"
169b50d902SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
179b50d902SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
189b50d902SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
199b50d902SRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
209b50d902SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
219b50d902SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
229b50d902SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
239b50d902SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
249b50d902SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
259b50d902SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
269b50d902SRodney W. Grimes.\" SUCH DAMAGE.
279b50d902SRodney W. Grimes.\"
28*a87651e2SEd Maste.Dd June 10, 2024
299b50d902SRodney W. Grimes.Dt KTRACE 1
3062500372SRuslan Ermilov.Os
319b50d902SRodney W. Grimes.Sh NAME
329b50d902SRodney W. Grimes.Nm ktrace
339b50d902SRodney W. Grimes.Nd enable kernel process tracing
349b50d902SRodney W. Grimes.Sh SYNOPSIS
358fe908efSRuslan Ermilov.Nm
369b50d902SRodney W. Grimes.Op Fl aCcdi
379b50d902SRodney W. Grimes.Op Fl f Ar trfile
3824b9685cSMike Heffner.Op Fl g Ar pgrp | Fl p Ar pid
39da647ae9SRuslan Ermilov.Op Fl t Ar trstr
408fe908efSRuslan Ermilov.Nm
419b50d902SRodney W. Grimes.Op Fl adi
429b50d902SRodney W. Grimes.Op Fl f Ar trfile
43da647ae9SRuslan Ermilov.Op Fl t Ar trstr
4433f69855SRuslan Ermilov.Ar command
459b50d902SRodney W. Grimes.Sh DESCRIPTION
4693e0d62dSJohn-Mark GurneyThe
4793e0d62dSJohn-Mark Gurney.Nm
48e8937ba0SPhilippe Charnierutility enables kernel trace logging for the specified processes.
499b50d902SRodney W. GrimesKernel trace data is logged to the file
509b50d902SRodney W. Grimes.Pa ktrace.out .
51*a87651e2SEd MasteThe kernel operations that are traced include system calls,
52*a87651e2SEd Maste.Xr namei 9
539b50d902SRodney W. Grimestranslations, signal processing, and
549b50d902SRodney W. Grimes.Tn I/O .
559b50d902SRodney W. Grimes.Pp
569b50d902SRodney W. GrimesOnce tracing is enabled on a process, trace data will be logged until
579b50d902SRodney W. Grimeseither the process exits or the trace point is cleared.
589b50d902SRodney W. GrimesA traced process can generate enormous amounts of log data quickly;
599b50d902SRodney W. GrimesIt is strongly suggested that users memorize how to disable tracing before
609b50d902SRodney W. Grimesattempting to trace a process.
61df449c35STom RhodesThe following command is sufficient to disable tracing on all user-owned
629b50d902SRodney W. Grimesprocesses, and, if executed by root, all processes:
639b50d902SRodney W. Grimes.Pp
6416964daeSPeter Wemm.Dl \&$ ktrace -C
659b50d902SRodney W. Grimes.Pp
669b50d902SRodney W. GrimesThe trace file is not human readable; use
679b50d902SRodney W. Grimes.Xr kdump 1
689b50d902SRodney W. Grimesto decode it.
699b50d902SRodney W. Grimes.Pp
70df449c35STom RhodesThe utility may be used only with a kernel that has been built with the
71df449c35STom Rhodes.Dq KTRACE
72df449c35STom Rhodesoption in the kernel configuration file.
73df449c35STom Rhodes.Pp
74df449c35STom RhodesThe options are:
759b50d902SRodney W. Grimes.Bl -tag -width indent
769b50d902SRodney W. Grimes.It Fl a
779bedbe6cSJoerg WunschAppend to the trace file instead of recreating it.
789b50d902SRodney W. Grimes.It Fl C
79df449c35STom RhodesDisable tracing on all user-owned processes, and, if executed by root, all
809b50d902SRodney W. Grimesprocesses in the system.
819b50d902SRodney W. Grimes.It Fl c
820b976534SJohn BaldwinClear the specified trace points associated with the given file or processes.
839b50d902SRodney W. Grimes.It Fl d
849b50d902SRodney W. GrimesDescendants; perform the operation for all current children of the
859b50d902SRodney W. Grimesdesignated processes.
866e5f5f90SEdward Tomasz NapieralaSee also the
876e5f5f90SEdward Tomasz Napierala.Fl i
886e5f5f90SEdward Tomasz Napieralaoption.
89943c2638SGiorgos Keramidas.It Fl f Ar trfile
909b50d902SRodney W. GrimesLog trace records to
91943c2638SGiorgos Keramidas.Ar trfile
929b50d902SRodney W. Grimesinstead of
939b50d902SRodney W. Grimes.Pa ktrace.out .
949b50d902SRodney W. Grimes.It Fl g Ar pgid
959b50d902SRodney W. GrimesEnable (disable) tracing on all processes in the process group (only one
969b50d902SRodney W. Grimes.Fl g
979b50d902SRodney W. Grimesflag is permitted).
989b50d902SRodney W. Grimes.It Fl i
999b50d902SRodney W. GrimesInherit; pass the trace flags to all future children of the designated
1009b50d902SRodney W. Grimesprocesses.
1016e5f5f90SEdward Tomasz NapieralaSee also the
1026e5f5f90SEdward Tomasz Napierala.Fl d
1036e5f5f90SEdward Tomasz Napieralaoption.
1049b50d902SRodney W. Grimes.It Fl p Ar pid
1059b50d902SRodney W. GrimesEnable (disable) tracing on the indicated process id (only one
1069b50d902SRodney W. Grimes.Fl p
1079b50d902SRodney W. Grimesflag is permitted).
108da647ae9SRuslan Ermilov.It Fl t Ar trstr
1090b976534SJohn BaldwinSpecify the list of trace points to enable or disable, one per letter.
1100b976534SJohn BaldwinIf an explicit list is not specified, the default set of trace points is used.
1110b976534SJohn Baldwin.Pp
1120b976534SJohn BaldwinThe following trace points are supported:
1139b50d902SRodney W. Grimes.Pp
1149b50d902SRodney W. Grimes.Bl -tag -width flag -compact
1159b50d902SRodney W. Grimes.It Cm c
1169b50d902SRodney W. Grimestrace system calls
11735818d2eSJohn Baldwin.It Cm f
11835818d2eSJohn Baldwintrace page faults
1199b50d902SRodney W. Grimes.It Cm i
1209b50d902SRodney W. Grimestrace
1219b50d902SRodney W. Grimes.Tn I/O
122d4523bd9SJohn Baldwin.It Cm n
123d4523bd9SJohn Baldwintrace namei translations
124c601ad8eSDag-Erling Smørgrav.It Cm p
125c601ad8eSDag-Erling Smørgravtrace capability check failures
1269b50d902SRodney W. Grimes.It Cm s
1279b50d902SRodney W. Grimestrace signal processing
12860e15db9SDag-Erling Smørgrav.It Cm t
12960e15db9SDag-Erling Smørgravtrace various structures
13009ac2438SPoul-Henning Kamp.It Cm u
13190a7bed4SEdward Tomasz Napieralauserland traces generated by
13290a7bed4SEdward Tomasz Napierala.Xr utrace 2
13309ac2438SPoul-Henning Kamp.It Cm w
13409ac2438SPoul-Henning Kampcontext switches
135a56be37eSJohn Baldwin.It Cm y
136a56be37eSJohn Baldwintrace
137a56be37eSJohn Baldwin.Xr sysctl 3
138a56be37eSJohn Baldwinrequests
139fef3edecSPeter Pentchev.It Cm +
140fef3edecSPeter Pentchevtrace the default set of trace points -
141f239db48SJake Freeland.Cm c , i , n , s , t , u , y
1429b50d902SRodney W. Grimes.El
1439b50d902SRodney W. Grimes.It Ar command
1449b50d902SRodney W. GrimesExecute
1459b50d902SRodney W. Grimes.Ar command
1469b50d902SRodney W. Grimeswith the specified trace flags.
1479b50d902SRodney W. Grimes.El
1489b50d902SRodney W. Grimes.Pp
1499b50d902SRodney W. GrimesThe
1509b50d902SRodney W. Grimes.Fl p ,
1519b50d902SRodney W. Grimes.Fl g ,
1529b50d902SRodney W. Grimesand
1539b50d902SRodney W. Grimes.Ar command
1549b50d902SRodney W. Grimesoptions are mutually exclusive.
1554f2ada0dSJake Freeland.Sh CAPABILITY VIOLATION TRACING
1564f2ada0dSJake FreelandWhen the
1574f2ada0dSJake Freeland.Cm p
1584f2ada0dSJake Freelandtrace point is specified,
1594f2ada0dSJake Freeland.Nm
1604f2ada0dSJake Freelandwill record
1614f2ada0dSJake Freeland.Xr capsicum 4
1624f2ada0dSJake Freelandcapability mode violations made by the traced process.
1634f2ada0dSJake FreelandViolations will be logged regardless of whether the process has actually
1644f2ada0dSJake Freelandentered capability mode.
1654f2ada0dSJake Freeland.Pp
1664f2ada0dSJake FreelandFor developers that are interested in Capsicumizing their programs, the
1674f2ada0dSJake Freeland.Cm c , n , p
1684f2ada0dSJake Freelandtrace points can help quickly identify any system calls and path lookups that
1694f2ada0dSJake Freelandare triggering violations.
1709b50d902SRodney W. Grimes.Sh EXAMPLES
1716e5f5f90SEdward Tomasz NapieralaRun "make", then trace it and any child processes:
1726e5f5f90SEdward Tomasz Napierala.Dl $ ktrace -i make
1736e5f5f90SEdward Tomasz Napierala.Pp
174c5ed2864SEdward Tomasz NapieralaTrace all kernel operations of process id 34:
1759b50d902SRodney W. Grimes.Dl $ ktrace -p 34
1769b50d902SRodney W. Grimes.Pp
177c5ed2864SEdward Tomasz NapieralaTrace all kernel operations of processes in process group 15 and
178c5ed2864SEdward Tomasz Napieralapass the trace flags to all current and future children:
1799b50d902SRodney W. Grimes.Dl $ ktrace -idg 15
1809b50d902SRodney W. Grimes.Pp
181c5ed2864SEdward Tomasz NapieralaDisable all tracing of process 65:
1829b50d902SRodney W. Grimes.Dl $ ktrace -cp 65
1839b50d902SRodney W. Grimes.Pp
184c5ed2864SEdward Tomasz NapieralaDisable tracing signals on process 70 and all current children:
1859b50d902SRodney W. Grimes.Dl $ ktrace -t s -cdp 70
1869b50d902SRodney W. Grimes.Pp
187c5ed2864SEdward Tomasz NapieralaEnable tracing of
1889b50d902SRodney W. Grimes.Tn I/O
189c5ed2864SEdward Tomasz Napieralaon process 67:
1909b50d902SRodney W. Grimes.Dl $ ktrace -ti -p 67
1919b50d902SRodney W. Grimes.Pp
192c5ed2864SEdward Tomasz NapieralaDisable all tracing to the file "tracedata":
1939b50d902SRodney W. Grimes.Dl $ ktrace -c -f tracedata
1949b50d902SRodney W. Grimes.Pp
195c5ed2864SEdward Tomasz NapieralaDisable tracing of all user-owned processes:
1969b50d902SRodney W. Grimes.Dl $ ktrace -C
1979b50d902SRodney W. Grimes.Sh SEE ALSO
1986e5f5f90SEdward Tomasz Napierala.Xr dtrace 1 ,
199f4864c27SBrooks Davis.Xr kdump 1 ,
2006e5f5f90SEdward Tomasz Napierala.Xr truss 1 ,
20190a7bed4SEdward Tomasz Napierala.Xr ktrace 2 ,
2024f2ada0dSJake Freeland.Xr utrace 2 ,
203*a87651e2SEd Maste.Xr capsicum 4 ,
204*a87651e2SEd Maste.Xr namei 9
2059b50d902SRodney W. Grimes.Sh HISTORY
2069b50d902SRodney W. GrimesThe
20793e0d62dSJohn-Mark Gurney.Nm
20893e0d62dSJohn-Mark Gurneycommand appeared in
2099b50d902SRodney W. Grimes.Bx 4.4 .
2106c7216dfSRuslan Ermilov.Sh BUGS
2116c7216dfSRuslan ErmilovOnly works if
2126c7216dfSRuslan Ermilov.Ar trfile
2136c7216dfSRuslan Ermilovis a regular file.
214