atrace - another syscall/libcall tracer
randolph at tausq.org
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 . 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
 "atrace --ltrace a.out" or "atrace --strace a.out"
 Neither the author nor this project is affiliated with HP.
More information about the Strace-devel