Fix: malloc libc instrumentation wrapper
[lttng-ust.git] / liblttng-ust / lttng-ust-comm.c
index 6eb4a892f7bf7d343ec3d77b8e9d6ab0cea38b33..27786945b46430e99f5a173ee28a9c7907c6a03c 100644 (file)
@@ -1310,6 +1310,14 @@ quit:
        return NULL;
 }
 
+/*
+ * Weak symbol to call when the ust malloc wrapper is not loaded.
+ */
+__attribute__((weak))
+void lttng_ust_malloc_wrapper_init(void)
+{
+}
+
 /*
  * sessiond monitoring thread: monitor presence of global and per-user
  * sessiond by polling the application common named pipe.
@@ -1343,12 +1351,17 @@ void __attribute__((constructor)) lttng_ust_init(void)
         */
        init_usterr();
        init_tracepoint();
+       lttng_ust_baddr_statedump_init();
        lttng_ring_buffer_metadata_client_init();
        lttng_ring_buffer_client_overwrite_init();
        lttng_ring_buffer_client_overwrite_rt_init();
        lttng_ring_buffer_client_discard_init();
        lttng_ring_buffer_client_discard_rt_init();
        lttng_context_init();
+       /*
+        * Invoke ust malloc wrapper init before starting other threads.
+        */
+       lttng_ust_malloc_wrapper_init();
 
        timeout_mode = get_constructor_timeout(&constructor_timeout);
 
@@ -1457,6 +1470,7 @@ void lttng_ust_cleanup(int exiting)
        lttng_ring_buffer_client_overwrite_rt_exit();
        lttng_ring_buffer_client_overwrite_exit();
        lttng_ring_buffer_metadata_client_exit();
+       lttng_ust_baddr_statedump_destroy();
        exit_tracepoint();
        if (!exiting) {
                /* Reinitialize values for fork */
This page took 0.022661 seconds and 4 git commands to generate.