[lttng-dev] instrumenting shared library

Thibault, Daniel Daniel.Thibault at drdc-rddc.gc.ca
Fri Apr 4 16:33:21 EDT 2014

De : Anand Neeli [mailto:anand.neeli at gmail.com]
Envoyé : 4 avril 2014 16:17

What i'm looking at it is: adding lttng infra in our code base. I'm looking for a solution where most of the lttng build and launch parts are abstracted to the end app/library developer.
That is the reason why i'm not in favor of having LD_PRELOAD while launching an app. This would need the app developer to check if included libraries has tracing support and add .so appropriately to LD_PRELOAD (which needs more education to developer on lttng and included libraries)
If we can launch app(with or without instrumented library) normally and limit the complexity of linking to makefile it will be great.

Please keep me posted if you have any more thoughts on this.
Also, can you please send me the users guide.

Anand Neeli
   The idea behind using LD_PRELOAD is to have tracing switchable on and off without needing to recompile or relink the application.  If you make the app statically aware of the tracepoint providers, it won't run (won't load) without them.  Of course, if you're comfortable with that, it's okay.
   Another approach is to have tracing controlled by an app option.  This requires the app to explicitly load and unload the tracepoint provider using dlopen() and dlclose().
   Things are also a little different if all you're instrumenting are the libraries the apps are using.  You might be able to get away with using the rpath tag and then just moving the tracepoint provider in and out of scope (by copying or renaming the tracepoint provider shared object).  This would be a rather kludgy global setting (unless the directory where the libraries lie is user-specific) and would also not work to turn off tracing while the libraries are in use (because the tracepoint provider would refuse to be unloaded).
   I'll send the PDFs separately.
Daniel U. Thibault
Protection des systèmes et contremesures (PSC) | Systems Protection & Countermeasures (SPC)
Cyber sécurité pour les missions essentielles (CME) | Mission Critical Cyber Security (MCCS)
R & D pour la défense Canada - Valcartier (RDDC Valcartier) | Defence R&D Canada - Valcartier (DRDC Valcartier)
2459 route de la Bravoure
Québec QC  G3J 1X5
Vox : (418) 844-4000 x4245
Fax : (418) 844-4538
NAC : 918V QSDJ <http://www.travelgis.com/map.asp?addr=918V%20QSDJ<--ESFSECEV-TY3011--------------------------------------->>
Gouvernement du Canada | Government of Canada

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20140404/50418dca/attachment.html>

More information about the lttng-dev mailing list