freebsd-dev/usr.bin/truss/truss.1
Brian Somers 0cf21b4f58 Add a -s flag for the same functionality as strace. Introduce a Name
type which is a String type that has no -s limitations applied to it.
Change most Strings in the code to Names and add a few extra syscalls,
namely munmap, read, rename and symlink.  This was enough to facilitate
following file descriptor allocations in the code more easily and
getting a hint at what's being read/written from/to files.  More
syscalls should really be added.

While here, fix an off-by-one bug in the buffer truncation code and
add a fflush so that truss's output reflects the syscall that the
program is stuck in.

Sponsored by:	Sophos/Activestate
MFC after:	2 weeks
2006-01-02 08:36:25 +00:00

111 lines
2.2 KiB
Groff

.\" $FreeBSD$
.\"
.Dd September 3, 2004
.Dt TRUSS 1
.Os
.Sh NAME
.Nm truss
.Nd trace system calls
.Sh SYNOPSIS
.Nm
.Op Fl faedDS
.Op Fl o Ar file
.Op Fl s Ar strsize
.Fl p Ar pid
.Nm
.Op Fl faedDS
.Op Fl o Ar file
.Op Fl s Ar strsize
command
.Op args
.Sh DESCRIPTION
The
.Nm
utility traces the system calls called by the specified process or program.
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:
.Bl -tag -width indent
.It Fl f
Trace descendants of the original traced process created by
.Xr fork 2 ,
.Xr vfork 2 ,
etc.
.It Fl a
Show the argument strings that are passed in each
.Xr execve 2
system call.
.It Fl e
Show the environment strings that are passed in each
.Xr execve 2
system call.
.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.
.It Fl S
Do not display information about signals received by the process.
(Normally,
.Nm
displays signal as well as system call events.)
.It Fl o Ar file
Print the output to the specified
.Ar file
instead of standard error.
.It Fl s Ar strsize
Display strings using at most
.Ar strsize
characters.
If the buffer is larger,
.Qq ...
will be displayed at the end of the string.
The default
.Ar strsize
is 32.
.It Fl p Ar pid
Follow the process specified by
.Ar pid
instead of a new command.
.It Ar command Op args
Execute
.Ar command
and trace the system calls of it.
(The
.Fl p
and
.Ar command
options are mutually exclusive.)
.El
.Pp
The
.Xr procctl 8
utility can be used to clear tracepoints in a stuck process
left behind if
.Nm
terminates abnormally.
.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
.Xr kdump 1 ,
.Xr ktrace 1 ,
.Xr procfs 5 ,
.Xr procctl 8
.Sh HISTORY
The
.Nm
command was written by
.An Sean Eric Fagan
for
.Fx .
It was modeled after
similar commands available for System V Release 4 and SunOS.