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