strace is a debugging utility for tracing system calls and signals under Linux.
The most common usage is to start a program using strace, which prints a list of system calls made by the program. This is useful if the program continually crashes, or does not behave as expected; for example using strace may reveal that the program is attempting to access a file which does not exist or cannot be read. Alternatively it can be attached to a process.
Under other OSes it's available with other names, such as DTrace (Solaris) and ktrace (*BSD).