CONFIG_DWORD_INFO(INTERNAL_SuppressLockViolationsOnReentryFromOS, W("SuppressLockViolationsOnReentryFromOS"), 0, "64 bit OOM tests re-enter the CLR via RtlVirtualUnwind. This indicates whether to suppress resulting locking violations.")
#endif // WIN64EXCEPTIONS
+///
+/// Diagnostics (unsuported general-purpose)
+///
+RETAIL_CONFIG_DWORD_INFO(UNSUPORTED_LTTng, W("LTTng"), 1, "If COMPlus_LTTng is set to 0, this will prevent the LTTng library from being loaded at runtime")
///
/// Exception Handling
static void
PAL_InitializeTracing(void)
{
+ int fShouldLoad = 1;
+ // Check if loading the LTTng providers should be disabled.
+ // Note: this env var is formally declared in clrconfigvalues.h, but
+ // this code is executed too early to use the mechanics that come with that definition.
+ char *disableValue = getenv("COMPlus_LTTng");
+ if (disableValue != NULL)
+ {
+ fShouldLoad = strtol(disableValue, NULL, 10);
+ }
+
// Get the path to the currently executing shared object (libcoreclr.so).
Dl_info info;
int succeeded = dladdr((void *)PAL_InitializeTracing, &info);
return;
}
-
-
- // Load the tracepoint provider.
- // It's OK if this fails - that just means that tracing dependencies aren't available.
- dlopen(tpProvPath, RTLD_NOW | RTLD_GLOBAL);
+
+ if (fShouldLoad)
+ {
+ // Load the tracepoint provider.
+ // It's OK if this fails - that just means that tracing dependencies aren't available.
+ dlopen(tpProvPath, RTLD_NOW | RTLD_GLOBAL);
+ }
}
#endif