strace [options] command [arguments]

Trace the system calls and signals for command and arguments. strace shows you how data is passed between the program and the system kernel. With no options, strace prints a line to standard error for each system call. It shows the call name, arguments given, return value, and any error messages generated. A signal is printed with both its signal symbol and a descriptive string.


-a n

Align the return values in column n.


Count all calls and signals and create a summary report when the program has ended.


Debug mode. Print debugging information for strace on standard error.


Pass an expression to strace to limit the types of calls or signals that are traced or to change how they are displayed. If no keyword is given, trace is assumed. The values can be given as a comma-separated list. Preceding the list with an exclamation mark (!) negates the list. The special values all and none are valid, as are the values listed with the following keywords.

abbrev= names

Abbreviate output from large structures for system calls listed in names.

read= descriptors

Print all data read from the given file descriptors.

signal= symbols

Trace the listed signal symbols (for example, signal=SIGIO,SIGHUP).

trace= sets

sets may be a list of system call names or one of the following:


Calls that take a filename as an argument


Interprocess communication




Process management ...

Get Unix in a Nutshell, 4th Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.