[lttng-dev] "Hands-free" tracepoints using LD_PRELOAD

Brian Rossa br at f0cal.com
Fri Jan 18 14:05:30 EST 2019


I have a custom tracing solution that I'm interested in porting to LTTng.
It works as follows:

   1. Input is a whitelist of mangled names taken from a target library,
   2. For each name, generate a logging shim (example
   <https://www.linuxjournal.com/article/7795>) for the corresponding call.
   3. Compile all the logging shims into a shared library, libshim.so.
   4. Trace any application using libfoo by running it as
   LD_PRELOAD=libshim.so ./fooapp

There are two nice things about this approach that I would like to preserve:

   - The shim developer only needs to provide the whitelist and a bit of
   extra annotation. From there, the shim can be be authored using a
   boilerplate generator.
   - The app developer doesn't have to do anything other than pass the
   LD_PRELOAD flag.

The downside is that the only tracepoints are those corresponding to the
whitelist, but I'm fine with that.

Can this kind of "hands-free" developer experience be supported by LTTng?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20190118/b47fe0f4/attachment.html>

More information about the lttng-dev mailing list