strace

Allows users to monitor system calls and signals between processes and the Linux kernel.

Made by Dmitry V. Levin

  • os-kernel

  • traces

What is strace?

The strace utility is a powerful tool for monitoring the interactions between processes and the Linux kernel, capturing critical system calls, signal deliveries, and changes in process state. By leveraging the kernel's ptrace feature, strace provides developers, system administrators, and educators with a comprehensive view of the inner workings of a running program, enabling them to diagnose issues, debug complex systems, and gain a deeper understanding of Linux internals. Unlike traditional debugging approaches, strace operates at the userspace level, making it accessible and applicable across a wide range of applications and scenarios. Its versatility extends to various Unix-like systems, where similar diagnostic tools, such as truss, may be available to serve comparable purposes

Highlights

  • Monitors interactions between processes and the Linux kernel, including system calls, signal deliveries, and process state changes
  • Utilizes the kernel's ptrace feature to provide a comprehensive view of a running program's internal operations
  • Operates at the userspace level, making it accessible and applicable across a wide range of applications
  • Supports various Unix-like systems, with similar diagnostic tools, such as truss, available on some platforms
  • Enables developers, system administrators, and educators to diagnose issues, debug complex systems, and gain insights into Linux internals

Platforms

  • FreeBSD
  • BSD
  • Linux

Languages

  • English

Features

    • Debugging