Hello, The production rootfs should be untouched, ideally read-only, for development/tests a subdirectory can be mounted (eg. /usr/local). Idea is that the contents of that directory alone (and at most some env variables) should allow enabling development features.
For lttng I would have wanted to add a library '/usr/local/lib/libmyservice-tracepoints.so' with runpath '/usr/local/lib' that would activate lttng tracing, pulling in lttng libraries (ust, ust-tracepoint) from /usr/local/lib. There is a caveat though, unless 'libmyservice-tracepoints.so'' is preloaded, the code in lttng/tracepoint.h will run constructor functions to register the tracepoint probes, trying to dlopen the lttng-ust-tracepoint library and fail at that because this is not in the library search paths. At a later time, 'libmyservice-tracepoints.so'' will be loaded, and lttng-ust-tracepoint (along with lttng-ust) can be resolved. but the tracepoints are not registered. So I guess what I would need is to either retrigger the registration of tracepoints (likely complicated with static and weak symbols potentially causing a mess), or redirect the dlopen function. Useful would be either try to find the library in /usr/local/lib or use '/usr/local/lib/libmyservice-tracepoints.so'' instead of lttng-ust-tracepoint (both have (dis)advantages). At any rate, I would welcome some customization macro. For illustration the current hack-around is following Norbert Lange #define TRACEPOINT_DEFINE #define TRACEPOINT_PROBE_DYNAMIC_LINKAGE #include <dlfcn.h> static inline void *s_remap_dlopen(const char *localfilename, int flags, unsigned prelen) { void *md = (dlopen)(localfilename + prelen, flags); return md ? md : (dlopen)(localfilename, flags); } # ideally this would be LTTNG_TRACEPOINT_PROBE_DLOPEN instead of the dlopen mess #define dlopen(x, y) s_remap_dlopen("/usr/local/lib/" x, y, (unsigned)sizeof("/usr/local/lib/") - 1U) #include "trace_mytracepoints.h" _______________________________________________ lttng-dev mailing list lttng-dev@lists.lttng.org https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev