strace
From Wikipedia, the free encyclopedia
strace is a debugging utility in Linux to monitor the system calls used by a program and all the signals it receives, similar to "truss" utility in other Unix systems. This is made possible by a Linux kernel feature known as ptrace.
A similar utility is provided by Cygwin.
Contents |
[edit] Usage
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.
An alternative application is to use the -p flag to attach to a running process. This is useful if a process has stopped responding, and might reveal, for example, that the process is blocking whilst attempting to make a network connection.
As strace only details system calls it cannot be used to detect as many problems as a code debugger such as Gdb. It is, however, easier to use than a code debugger, and is an extremely useful tool for system administrators.
[edit] Other platforms
Other platforms provide similar tools, for example Solaris and FreeBSD both provide the Truss command, and Mac OS X provides ktrace (10.4 and earlier) and DTrace in 10.5 and later.[1]

