Strace has been ported by Branko Lankester to run on Linux systems. Since then it has been greatly modified by various other people. If you want to compile strace on a Linux system please make sure that you use very recent kernel headers. Strace needs those to get the proper data structures used by the kernel, since these can be different from the structures that the C library uses. Currently you will need a 2.2.7 or newer kernel. There are two ways to do this: * you can link /usr/include/linux and /usr/include/asm to the corresponding directories in your kernel source-tree. * you can tell make where your kernel sources are. For example if you have your kernelsource in /usr/src/linux, you should invoke make like this: make CFLAGS=-I/usr/src/linux/include