blob: 387d24dd8a01a8387eeb3bb1e1965e035c875268 [file] [log] [blame]
Even though SVR4 has truss, you may prefer using strace for a number
of reasons. Not the least of which are portability and source code.
The main event loop is awkward on systems for which procfs isn't
pollable. I think a pollable procfs is a Solaris invention so most SVR4
systems have this weakness. On Solaris, strace runs as a single
controlling process. This is a big improvement if you are debugging a
lot of processes at once.
There is no thread support but it wouldn't be very difficult to add it.
On UnixWare using the -f option to follow forked children sometimes shows
many "unfinished" system calls as strace bounces between each runnable child.
A crude workaround for this is available by adding
#define POLL_HACK 1
to the config.h file. This forces strace to check whether the last process
has finished a system call before polling other processes for events.
Wichert Akkerman <>