1999-08-28 23:23:38 +00:00
|
|
|
.\" $FreeBSD$
|
|
|
|
.\"
|
2004-09-03 18:56:59 +00:00
|
|
|
.Dd September 3, 2004
|
1997-12-06 05:23:12 +00:00
|
|
|
.Dt TRUSS 1
|
2001-07-10 14:16:33 +00:00
|
|
|
.Os
|
1997-12-06 05:23:12 +00:00
|
|
|
.Sh NAME
|
1998-01-05 07:30:26 +00:00
|
|
|
.Nm truss
|
1997-12-06 05:23:12 +00:00
|
|
|
.Nd trace system calls
|
1998-01-05 07:30:26 +00:00
|
|
|
.Sh SYNOPSIS
|
2000-11-20 19:21:22 +00:00
|
|
|
.Nm
|
2002-08-04 02:24:21 +00:00
|
|
|
.Op Fl faedDS
|
1998-01-05 07:30:26 +00:00
|
|
|
.Op Fl o Ar file
|
|
|
|
.Fl p Ar pid
|
2000-11-20 19:21:22 +00:00
|
|
|
.Nm
|
2002-08-04 02:24:21 +00:00
|
|
|
.Op Fl faedDS
|
1997-12-06 05:23:12 +00:00
|
|
|
.Op Fl o Ar file
|
|
|
|
command
|
1998-01-05 07:30:26 +00:00
|
|
|
.Op args
|
1997-12-06 05:23:12 +00:00
|
|
|
.Sh DESCRIPTION
|
2002-04-20 12:18:28 +00:00
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
utility traces the system calls called by the specified process or program.
|
1997-12-06 05:23:12 +00:00
|
|
|
Output is to the specified output file, or standard error by default.
|
|
|
|
It does this by stopping and restarting the process being monitored via
|
|
|
|
.Xr procfs 5 .
|
|
|
|
.Pp
|
|
|
|
The options are as follows:
|
1998-01-05 07:30:26 +00:00
|
|
|
.Bl -tag -width indent
|
2002-08-04 01:02:52 +00:00
|
|
|
.It Fl f
|
2005-07-31 03:30:48 +00:00
|
|
|
Trace descendants of the original traced process created by
|
2002-11-26 17:33:37 +00:00
|
|
|
.Xr fork 2 ,
|
|
|
|
.Xr vfork 2 ,
|
|
|
|
etc.
|
2002-08-04 02:24:21 +00:00
|
|
|
.It Fl a
|
2002-11-26 17:33:37 +00:00
|
|
|
Show the argument strings that are passed in each
|
|
|
|
.Xr execve 2
|
|
|
|
system call.
|
2002-08-04 02:24:21 +00:00
|
|
|
.It Fl e
|
2002-11-26 17:33:37 +00:00
|
|
|
Show the environment strings that are passed in each
|
|
|
|
.Xr execve 2
|
|
|
|
system call.
|
2002-08-04 01:27:31 +00:00
|
|
|
.It Fl d
|
|
|
|
Include timestamps in the output showing the time elapsed
|
|
|
|
since the trace was started.
|
|
|
|
.It Fl D
|
|
|
|
Include timestamps in the output showing the time elapsed
|
|
|
|
since the last recorded event.
|
1997-12-06 05:23:12 +00:00
|
|
|
.It Fl S
|
|
|
|
Do not display information about signals received by the process.
|
|
|
|
(Normally,
|
1998-01-05 07:30:26 +00:00
|
|
|
.Nm
|
1997-12-06 05:23:12 +00:00
|
|
|
displays signal as well as system call events.)
|
1998-01-05 07:30:26 +00:00
|
|
|
.It Fl o Ar file
|
|
|
|
Print the output to the specified
|
|
|
|
.Ar file
|
|
|
|
instead of standard error.
|
|
|
|
.It Fl p Ar pid
|
2001-07-15 08:06:20 +00:00
|
|
|
Follow the process specified by
|
1997-12-06 05:23:12 +00:00
|
|
|
.Ar pid
|
|
|
|
instead of a new command.
|
1998-01-05 07:30:26 +00:00
|
|
|
.It Ar command Op args
|
1997-12-06 05:23:12 +00:00
|
|
|
Execute
|
|
|
|
.Ar command
|
|
|
|
and trace the system calls of it.
|
|
|
|
(The
|
|
|
|
.Fl p
|
|
|
|
and
|
|
|
|
.Ar command
|
|
|
|
options are mutually exclusive.)
|
2000-12-19 16:00:12 +00:00
|
|
|
.El
|
2004-09-03 17:52:55 +00:00
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Xr procctl 8
|
|
|
|
utility can be used to clear tracepoints in a stuck process
|
2004-09-07 13:22:28 +00:00
|
|
|
left behind if
|
|
|
|
.Nm
|
|
|
|
terminates abnormally.
|
1997-12-06 05:23:12 +00:00
|
|
|
.Sh EXAMPLES
|
|
|
|
# Follow the system calls used in echoing "hello"
|
|
|
|
.Dl $ truss /bin/echo hello
|
|
|
|
# Do the same, but put the output into a file
|
|
|
|
.Dl $ truss -o /tmp/truss.out /bin/echo hello
|
|
|
|
# Follow an already-running process
|
|
|
|
.Dl $ truss -p 1
|
|
|
|
.Sh SEE ALSO
|
1998-01-05 07:30:26 +00:00
|
|
|
.Xr kdump 1 ,
|
1997-12-06 05:23:12 +00:00
|
|
|
.Xr ktrace 1 ,
|
2004-09-03 17:52:55 +00:00
|
|
|
.Xr procfs 5 ,
|
|
|
|
.Xr procctl 8
|
1997-12-06 05:23:12 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
1998-01-05 07:30:26 +00:00
|
|
|
.Nm
|
|
|
|
command was written by
|
|
|
|
.An Sean Eric Fagan
|
|
|
|
for
|
2000-01-23 01:48:16 +00:00
|
|
|
.Fx .
|
|
|
|
It was modeled after
|
1997-12-06 05:23:12 +00:00
|
|
|
similar commands available for System V Release 4 and SunOS.
|