This new release of Systrace adds translations for a number of new system calls and should also take care of zombies accumulating for users of the Linux ptrace backend. Systrace now allows waitpid to execute in more cases which should hopefully reap the reparented children. Download it
here. A
debian package is available, too.
Last October, I (Marius Eriksen) updated the Linux-kernel patches for systrace. Get it
here. A pre-built Debian package is available
here.
Watch this space for updates in a week or two as I will be bringing the diffs up to date.
Systrace does not provide translations for all system calls. But it has been designed to make adding new translations very easy. Many people have noticed that they no longer see the IP address that nslookup connects to for DNS queries after updating to a newer version of Bind. The reason is that Systrace did not provide a translation for sendmsg.
Here is what you have to do add the necessary translation.
1. Provide a translator for
sendmsg by adding the following code to the end of
intercept-translate.c:
Continue reading "HowTo: Translating a New System Call"
It turned out that emulating waitpid for threads was more complicated then I initially assumed. Some older Linux kernels also exhibited strange behaviors in which the cloned child could execute before the parent did. This and a bunch of other fixes went into
Systrace 1.6c which is now also available as
Debian package. I tested this on various 2.4 kernels and distributions and was able to use the ptrace backend to run complicated applications like FireFox and X-Chat. Things look good.