strace
Introduction
This cheat sheet provides a quick reference for some common strace commands and concepts. strace is a command-line tool used for tracing system calls and signals in Linux and Unix-like operating systems.
strace Concepts
Basic strace Usage
strace is used for monitoring system calls made by a program.
- Trace a program's system calls: - strace command [arguments]
- Trace a running process by its PID: - strace -p PID
Output Control
Control the output format and verbosity of strace traces.
- Write trace output to a file: - strace -o output.txt command
- Increase or decrease the level of detail: - strace -v command
 strace -vv command
Filtering
Filter the output to focus on specific system calls.
- Trace only a specific system call (e.g., - open):- strace -e trace=open command
- Exclude specific system calls from the trace: - strace -e trace=!open command
- Trace calls only for a specific process (by name or PID): - strace -e trace=open -p PID
Timing Information
Gather timing information for system calls.
- Display timestamps for each call: - strace -t command
- Display relative timestamps: - strace -r command
Signal Tracing
Trace signals sent to a process.
- Trace signals sent to a process:strace -e trace=signal command
Network Tracing
Trace network-related system calls.
- Trace network-related calls (e.g., socket,connect):strace -e trace=network command
strace Command-Line
- Trace a program's system calls: - strace command [arguments]
- Trace a running process by its PID: - strace -p PID
- Write trace output to a file: - strace -o output.txt command
- Increase or decrease the level of detail: - strace -v command
 strace -vv command
- Trace only a specific system call (e.g., - open):- strace -e trace=open command
- Exclude specific system calls from the trace: - strace -e trace=!open command
- Trace calls only for a specific process (by name or PID): - strace -e trace=open -p PID
- Display timestamps for each call: - strace -t command
- Display relative timestamps: - strace -r command
- Trace signals sent to a process: - strace -e trace=signal command
- Trace network-related calls (e.g., - socket,- connect):- strace -e trace=network command
Conclusion
This cheat sheet covers some common strace commands and concepts. strace is a valuable tool for tracing system calls and signals in Linux and Unix-like operating systems, aiding in debugging and performance analysis; refer to the strace manual for more in-depth information and advanced usage.