atrace - another syscall/libcall tracer

Randolph Chung randolph at
Sat May 9 02:32:42 UTC 2009


Some time ago, frustrated by the fact the ltrace doesn't work on 
parisc-linux, I started looking into what it would take to make it work 
on parisc-linux. I discovered ltrace made a number of assumptions that 
are not valid  on several new architectures (at that time - ppc, ia64, 
parisc). From my work on gdb I started looking at a different, more 
robust ways to trace library calls, and put together a 
"proof-of-concept" that I named atrace (another trace). Sadly, while I 
was able to quickly get it to work on parisc, ia64, and i386 to prove 
out my idea, I ran out of time to maintain it (sounds familiar?) and the 
code set stale (albeit on a public svn server) for a few years. I had 
contacted the ltrace maintainer at that time to see if the changes can 
be incorporated into ltrace, but received no response.

Recently because of some discussions on the parisc-linux mailing list I 
checked out the code again and, after fixing a few bitrotten bits, got 
it to work again on parisc-linux and i386. atrace can generate both 
ltrace and strace like output [1]. It doesn't have all the bells and 
whistles of strace, but at least on parisc it seems to work more 
reliably, even after so many years. (strace is currently broken on parisc).

Maybe somebody here would be interested to take a look at it and see if 
there are any useful bits :) I still use it from time to time and if 
there is interest I'll put it up on a public git repository or 
something, but if somebody here think there are useful bits that can be 
folded into a project like strace that has a more active maintainership, 
that will be even better :)

You can get a copy of the current atrace code from [2]


[1] "atrace --ltrace a.out" or "atrace --strace a.out"
[2] Neither the author nor this project is affiliated with HP.

More information about the Strace-devel mailing list