[lttng-dev] LTTng-UST alternative to LD_PRELOAD

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Fri Jul 20 14:13:21 EDT 2012


* Lars (lars at grandepotatis.se) wrote:
> 
> Hello,
> 
> I have recently started to use LTTng-UST and am using LD_PRELOAD
> to make it possilbe to execute instrumented code on systems without
> LTTng-UST installed.
> 
> To define LD_PRELOAD however affects too much. For instance all
> forked processes also get the library loaded. This can be fixed by
> removing the library from the LD_PRELOAD variable early in the main
> function. This looks odd and required some explaining in comments.

good point. LD_PRELOAD was originally the only way we allowed lttng-ust
to be loaded, because during the rc phase of the lttng-ust 2.0
development, we had issues with dlopening liblttng-ust. This has been
fixed within the rc stages though, so we could go for a dlopen approach
now.

> 
> Also, in my case, the instrumented program is started with a "wrapper"
> program which I can not alter. This wrapper also gets the library
> loaded.
> 
> As an alternative to using LD_PRELOAD I would like to use an explicit
> function, like;
> 
>   int traceload(char const* library_path);

or maybe:

int lttng_ust_dlopen(const char *library_path);

?

> that is called early in main (instead of the LD_PRELOAD environment
> manipulation) and loads the library with dlopen if it exists.

yep, makes sense.

> 
> I have already tried this (of course) and it almost works already.
> The tracepoints becomes visible but I get no trace data written.
> So I think a really small modification is needed.
> 
> Is anything like this planned?

if you can provide a patch, I'd be glad to review & merge it.

> 
> Or can anybody give me a hint on what is missing?

Try running your app with the env. var LTTNG_UST_DEBUG=1  set. It might
provide helpful info. If you still have problems, please post your patch
as RFC along with specific test programs so we can look at the behavior.

Thanks,

Mathieu

> 
> I checked the mailing list a couple of months back but did not
> find anything.
> 
> Best Regards,
> Lars Ekman
> 
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list