8

I am searching for a tool that allows to trace calls to functions in shared libraries in Linux/ARM. Basically, I want to be able to specify a command line and let this tool produce a record of called library functions and the passed arguments. I imagine some form of function hooking could be used for this.

I am aware of ltrace, which provides exactly the functionality I require. However, ltrace does not work for me as it:

  • often segfaults when tracing more complex programs.
  • is very slow.

I am looking for a more robust alternative. Speed is nice, but not my main concern. Primarily, I would like to have a means of tracing library calls that can analyze any (non-evasive) program.

Sysdig is also not working in ARM, and the port of dtrace is still working in beta only in NetBSD.

Is anyone aware of such a tool in a usable state?

1

Have you looked at LTTng? It is a kernelspace/userspace tracing framework that works on several architectures, including ARM.

You can set up tracing for userspace code with LTTng-UST. But you'd have to recompile the shared libraries you want to trace, with your LTTng tracepoints added in.

Here is a guide from the official lttng docs on setting up userspace tracing: Tracing your own user application

I don't know if this would be helpful in your case, but there is also a Stack Overflow thread on compiling/installing lttng on embedded platforms (including ARM): How do I build and deploy LTTng to an embedded Linux system?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.