From mboxrd@z Thu Jan 1 00:00:00 1970 From: lars@grandepotatis.se (Lars) Date: Sun, 17 Jun 2012 17:08:23 +0200 Subject: [lttng-dev] LTTng-UST alternative to LD_PRELOAD Message-ID: <1339945703.2599.21.camel@DellE5500> 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. 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); that is called early in main (instead of the LD_PRELOAD environment manipulation) and loads the library with dlopen if it exists. 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? Or can anybody give me a hint on what is missing? I checked the mailing list a couple of months back but did not find anything. Best Regards, Lars Ekman