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 stderr 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 stderr.

-e [keyword =][!]values

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

signal ...

Get Linux in a Nutshell, Fourth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.