strace System Call Categories

strace system call families — file, process, memory, signal, network — with -e flags.

Reference for strace -e trace= system call category names — file, process, network, memory, signal, ipc, desc — with example syscalls and the full strace invocation.

What does -e trace= accept?

It takes a comma-separated list of category names (like file,network), individual syscall names (like openat,read), or qualifiers such as %file. Categories are shorthand for related groups of syscalls.

Build strace trace filters by syscall category

strace can flood the terminal, so its -e trace= option lets you limit output to families of system calls. This reference lists the category names strace accepts — file, process, network, memory, signal, ipc and descriptor — with example syscalls, and assembles the full command for you. It runs entirely in your browser.

How it works

strace -e trace=CATS command traces only the chosen call families. CATS is a comma-separated list of category names, individual syscall names, or % qualifiers. The most useful categories are file (path-based calls), desc (descriptor calls), network, process, memory, signal and ipc:

strace -e trace=network,desc -f curl https://example.com
strace -e trace=file -p 4821
strace -c ./myprogram

Tips and examples

  • Combine file and desc to see both the open and the subsequent read/write on the resulting descriptor.
  • -f follows forked children and threads — essential for tracing servers and shells that spawn workers.
  • -c replaces the per-call log with a summary of counts, errors and time per syscall, perfect for spotting the most-called or slowest call.
  • Use -o trace.log to write output to a file and keep it off the program’s own stderr, and -y to print the path behind each file descriptor.